创建于SWI-Prolog的保存状态(Creating a saved state in SWI-P

2019-09-16 12:13发布

我试图从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”? 我想要的是一个的ressource文件,我可以从我的嵌入式C / C ++应用程序加载。

任何人都可以帮助吗?

Answer 1:

对于SWI-Prolog的文档qsave_program是简洁,难以遵循,但是从这里开始 。 最后两节, 创建一个保存的状态 ,并使用-c命令行选项将至少给你一个例子来尝试编译

我觉得这里的问题是,使用的1参数版本qsave_program强制程序状态下保存不只是作为一个资源,但作为附加到一个机器相关的可执行文件,Prolog的模拟器结束的资源。 在Windows这样的文件需要.exe扩展名,而是你正试图迫使.prc扩展。

从例子中,我会尝试使用原子boo64作为文件参数。 如果你想从程序保存的状态删除模拟器,或检查该资源,请在下方链接的章节此页 。



文章来源: Creating a saved state in SWI-Prolog