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简洁且难以理解,但请 从这里开始。最后两节,创建保存状态使用 -c 命令行选项编译至少会给你一个例子来尝试。

我认为这里的问题是使用 1 参数版本qsave_program强制程序状态不仅作为资源保存,而且作为附加到机器相关可执行文件 Prolog 模拟器末尾的资源。Windows 上的此类文件需要.exe扩展名,但您正试图强制.prc扩展名。

从示例中,我将尝试使用 atomboo64作为您的File参数。如果您想从程序保存状态中删除模拟器,或检查该资源,请查看本页底部链接的部分。

于 2012-04-13T13:30:28.177 回答