3

Windows でトップレベルから保存された状態を作成しようとしていますが、次のエラーが発生し続けます。

1 ?- qsave_program('U:/boo64.prc').
%   library(broadcast) compiled into broadcast 0.00 sec, 7,504 bytes
%   library(debug) compiled into prolog_debug 0.00 sec, 21,544 bytes
%   library(option) compiled into swi_option 0.00 sec, 14,416 bytes
%   library(arithmetic) compiled into arithmetic 0.00 sec, 33,872 bytes
%  library(settings) compiled into settings 0.00 sec, 120,152 bytes
% c:/program files/swi-prolog/library/listing compiled into prolog_listing 0.00 sec, 180,936 bytes
%   library(occurs) compiled into occurs 0.00 sec, 5,144 bytes
%  library(prolog_clause) compiled into prolog_clause 0.00 sec, 61,544 bytes
% c:/program files/swi-prolog/library/prolog_stack compiled into prolog_stack 0.00 sec, 77,320 bytes
ERROR: '$mark_executable'/1: file `U:/boo64.prc' does not exist (No such file or directory)
2 ?- 

これはやるべきだと思いました。「mark_executable」を呼び出そうとするのはなぜですか? 必要なのは、組み込み C/C++ アプリケーションからロードできるリソース ファイルだけです。

誰でも助けることができますか?

4

1 に答える 1

3

の SWI-Prolog ドキュメントqsave_programは簡潔でわかりにくいですが、 ここから始めてください。最後の 2 つのセクション、保存された状態の作成-c コマンドライン オプションを使用したコンパイルでは、少なくとも試してみる例を示します。

qsave_programここでの問題は、引数が 1 つのバージョンの を使用すると、プログラムの状態がリソースとしてだけでなく、マシン依存の実行可能ファイルである Prolog エミュレーターの末尾に追加されたリソースとして強制的に保存されることだと思います。Windows 上のこのようなファイルには.exe拡張子が必要ですが、拡張子を強制しようとしています.prc

例から、ファイル引数boo64としてアトムを使用してみます。プログラムを保存した状態からエミュレーターを削除する場合、またはそのリソースを調べる場合は、このページの下部にリンクされているセクションを確認してください。

于 2012-04-13T13:30:28.177 に答える