在解决这个问题 4 小时后,我将不胜感激您的帮助:
我需要从 prolog 脚本创建一个 exe 文件(在 Windows 上)。例如, main.pl 有里面:
day(monday).
day(tuesday).
day(wednesday).
day(thursday).
day(friday). % let's stop here
我想编译这个脚本,生成 prog.exe 文件,然后能够执行以下运行:
$ prog.exe --term sunday
false
$ prog.exe --term monday
true
$ prog.exe --goal day(friday)
true
$ prog.exe --goal fun(foo)
false
如果标志很困难,带有输入目标的非标志版本对我也很有帮助。
我试图阅读 swi-prolog 页面上的编译页面,但感到困惑。我无法在标准输出流上打印任何内容。我也不明白标志是如何工作的。
尝试了他们在 swi-prolog 网站上的示例,但我不明白为什么没有打印任何内容。使用下面的脚本,我可以使用命令 save(prog) 创建 exe 文件,但是在运行 prog.exe 时什么都不会打印出来。
:- ['main'].
main :-
pce_main_loop(main).
main(Argv) :-
write('hello word').
save(Exe) :-
pce_autoload_all,
pce_autoload_all,
qsave_program(Exe,
[ emulator(swi('bin/xpce-stub.exe')),
stand_alone(true),
goal(main)
]).