9 个版本
0.3.6 | 2024年2月20日 |
---|---|
0.3.5 | 2023年8月3日 |
0.3.4 | 2022年8月13日 |
0.3.3 | 2022年1月24日 |
0.1.0 | 2021年4月28日 |
#11 in #foreign
每月下载量106
在 swipl 中使用
8KB
73 行
swipl-fli - SWI-Prolog的外部语言接口的底层绑定
这个crate提供了SWI-Prolog外部语言接口的底层绑定。绑定是通过使用bindgen生成的。SWI-Prolog的头文件和共享库是通过使用在swipl
二进制文件中找到的,该文件位于PATH
或SWIPL
环境变量中。
运行时库发现
除非您的操作系统可以自动发现SWI-Prolog的动态库,否则运行依赖于此crate的任何内容(包括单元测试)都会失败,错误信息表明无法找到共享库。不幸的是,似乎无法以可移植的方式在编译时将库的位置嵌入。
为了使程序运行,您必须将共享库目录添加到库加载路径。在linux上,可以通过设置环境变量LD_LIBRARY_PATH
来完成此操作。例如,
LD_LIBRARY_PATH=/home/matthijs/.swivm/lib/x86_64-linux/:$LD_LIBRARY_PATH cargo test
这相当繁琐。为了帮助,请考虑安装cargo-swipl。使用cargo-swipl,上述操作变为
cargo swipl test
为了更持久的解决方案,请考虑使用像chrpath
这样的工具将库的位置嵌入到您的二进制文件中。或者,您可以让SWI-Prolog处理独立二进制的构建,通过在swipl进程中加载您的本地库并执行qsave
。
依赖项
~0–1.8MB
~36K SLoC