我正在尝试从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 ++应用程序加载。
任何人都可以提供帮助吗?
答案 0 :(得分:3)
qsave_program
的SWI-Prolog文档简洁且难以理解,但是
start here。最后两个部分使用-c命令行选项创建保存状态和编译至少会为您提供一个示例。
我认为这里的问题是使用qsave_program
的1参数版本强制程序状态不仅作为资源保存,而且作为附加到机器相关可执行文件末尾的资源保存,Prolog模拟器。 Windows上的此类文件需要.exe
扩展名,但您尝试强制.prc
扩展名。
从示例中我将尝试使用atom boo64
作为 File 参数。如果要从程序保存状态中删除模拟器,或检查该资源,请查看this page底部链接的部分。