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

Download history 140/week @ 2024-04-01 33/week @ 2024-04-08 28/week @ 2024-04-15 34/week @ 2024-04-22 20/week @ 2024-04-29 20/week @ 2024-05-06 22/week @ 2024-05-13 24/week @ 2024-05-20 30/week @ 2024-05-27 30/week @ 2024-06-03 24/week @ 2024-06-10 23/week @ 2024-06-17 23/week @ 2024-06-24 34/week @ 2024-07-01 23/week @ 2024-07-08 23/week @ 2024-07-15

每月下载量106
swipl 中使用

Apache-2.0/MIT

8KB
73

swipl-fli - SWI-Prolog的外部语言接口的底层绑定

这个crate提供了SWI-Prolog外部语言接口的底层绑定。绑定是通过使用bindgen生成的。SWI-Prolog的头文件和共享库是通过使用在swipl二进制文件中找到的,该文件位于PATHSWIPL环境变量中。

文档

运行时库发现

除非您的操作系统可以自动发现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