即使使用@ rpath / library.dylib,Runpath搜索路径也找不到库

时间:2016-04-06 09:09:00

标签: xcode macos dynamic-linking

我几个小时以来一直把头靠在墙上。我一直在玩CMUSphinx的pocketsphinx库,在OSX 10.10 / XCode 7.2上运行,并希望我的.app软件包可以在我自己的计算机上运行。最重要的是,有三个动态库必须嵌入.app包(libpocketsphinx.3.dyliblibsphinxad.3.dyliblibsphinxbase.3.dylib),然后使用Runpath Search Paths设置加载的XCode。

我已经阅读了关于如何使其发挥作用的所有内容。我应该注意.app包在我自己的机器上编译/运行。我确保将库复制到.app包的/Contents/Frameworks文件夹中。这些库没有使用引用,但是被复制到我的源文件夹中(根据CMUSphinx页面上关于这个问题的论坛帖子)。我已尝试在install_name_tool中使用@rpath/libraryname.dylib以及在可执行文件中使用@loader_path@executable_path的所有组合(因此将其在XCode中更改为@ whatever_path / ../Frameworks),以及三个库文件。我也在这里发过@loader_path/Frameworks帖,但没有运气。

奇怪的是我得到的错误似乎正在加载libsphinxad.3.dylib,因为libsphinxad.3.dyliblibsphinxad.3.dylib都依赖于libsphinxbase.3.dylib,但我收到此错误崩溃报告:

Dyld Error Message:
  Library not loaded: /usr/local/lib/libsphinxbase.3.dylib
  Referenced from: /Volumes/SunGate/VoiceCommander.app/Contents/Frameworks/libsphinxad.3.dylib
  Reason: image not found

注意,/Volumes/SunGate/只是我正在测试它的另一台机器上的驱动器。

我会真的感谢这方面的帮助!我会尽力提供可能有助于解决此问题的任何其他信息!

1 个答案:

答案 0 :(得分:0)

我在系统上使用“find”命令找到了这个lib。毫不奇怪,它就在这里

  

sphinxbase / SRC / libsphinxbase /的.libs / libsphinxbase.3.dylib

我将它链接到/ usr / local / lib /

  

ln -s sphinxbase / src / libsphinxbase / .libs / libsphinxbase.3.dylib /usr/local/lib/libsphinxbase.3.dylib

一切都准备好了!