如何在SWI-Prolog环境下将Prolog代码编译为exe可执行文件
SWI-Prolog Windows环境打包exe可执行文件操作步骤
- 第一步:启动SWI-Prolog终端,先加载需要打包的源码文件
假设你的源码文件路径为D:\my_proj\demo.pl,在终端输入如下命令加载,加载完成确认无报错、所有功能可正常运行:
注意路径分隔符用正斜杠consult('D:/my_proj/demo.pl')./,或者用双反斜杠\\即可。 - 第二步:执行打包命令
SWI-Prolog自带qsave_program/2接口直接完成打包,基础命令格式如下:
参数说明:qsave_program('D:/my_proj/demo.exe', [standalone(true)]).- 第一个参数是生成exe的保存路径,建议写绝对路径方便查找
- 第二个参数列表里的
standalone(true)是必填项,作用是把SWI-Prolog运行时环境一起打包进exe,生成的文件可直接在未安装SWI-Prolog的Windows设备上运行
如果你需要程序启动后自动执行指定入口谓词,比如你的启动逻辑写在main/0谓词里,可以增加goal参数:
qsave_program('D:/my_proj/demo.exe', [standalone(true), goal(main)]). - 第三步:验证生成的exe
命令执行无报错的情况下,到你指定的保存路径就能找到生成的exe文件,双击运行或者在cmd里启动都可以正常执行你的程序逻辑。
常见问题注意事项
- 打包前建议暂时关闭杀毒软件实时防护,部分杀毒软件会拦截打包过程中生成的临时文件,导致打包失败
- 如果你的代码依赖外部资源(比如txt、csv、图片等),需要把这些资源和exe放在相同目录下,代码里调用资源的路径写相对路径即可
- 64位SWI-Prolog打包的exe仅支持64位Windows系统运行,如果需要兼容32位系统,可安装32位版本的SWI-Prolog重新打包
- 如果打包后运行exe提示找不到谓词,回到第一步确认
consult加载源码时无报错,所有自定义谓词、第三方模块都已正常加载完成
内容的提问来源于stack exchange,提问作者Haftu Meresa
相关产品推荐
相关产品推荐

