为了账号安全,请及时绑定邮箱和手机立即绑定

在 macOS 上使用 JPL 和 SWI-Prolog

在 macOS 上使用 JPL 和 SWI-Prolog

呼啦一阵风 2021-10-06 10:58:48
我正在尝试在 macOS High Sierra 上将 JPL 与 SWI-Prolog 结合使用,但遇到了问题。事实上,起初libjpl.dylib没有被发现,所以我说的路径,它java.library.path通过java -Djava.library.path=/Applications/SWI-Prolog.app/Contents/swipl/lib/x86_64-darwin15.6.0/现在找到了库,但我收到另一个错误:java.lang.UnsatisfiedLinkError: /Applications/SWI-Prolog.app/Contents/swipl/lib/x86_64-darwin15.6.0/libjpl.dylib: dlopen(/Applications/SWI-Prolog.app/Contents/swipl/lib/x86_64-darwin15.6.0/libjpl.dylib, 1): Library not loaded: @executable_path/../swipl/lib/x86_64-darwin15.6.0/libswipl.dylib  Referenced from: /Applications/SWI-Prolog.app/Contents/swipl/lib/x86_64-darwin15.6.0/libjpl.dylib  Reason: image not found    at java.lang.ClassLoader$NativeLibrary.load(Native Method)    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1857)    at java.lang.Runtime.loadLibrary0(Runtime.java:870)    at java.lang.System.loadLibrary(System.java:1122)    ...据我了解,这是由于此版本的 SWI-Prolog 是可重定位的(因此具有相对于可执行文件的路径)。输出otool -L的libjpl.dylib给我这样的输出:/Applications/SWI-Prolog.app/Contents/swipl/lib/x86_64-darwin15.6.0/libjpl.dylib:    @rpath/libjsig.dylib (compatibility version 1.0.0, current version 1.0.0)    @rpath/libjvm.dylib (compatibility version 1.0.0, current version 1.0.0)    @executable_path/../swipl/lib/x86_64-darwin15.6.0/libswipl.dylib (compatibility version 0.0.0, current version 7.6.4)    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)因此,修复它的一种方法是通过 macport 或自制软件安装不可重定位的版本。问题是,SWI-Prolog 的 MacPorts 和 Homebrew 版本都不包含该libjpl.dylib库:/我在这里错过了什么吗?我该怎么做才能使这项工作发挥作用?
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 189 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信