我正在嘗試在 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庫:/我在這里錯過了什么嗎?我該怎么做才能使這項工作發揮作用?
添加回答
舉報
0/150
提交
取消