解决链接依赖关系 mac os x

resolving linking dependencies mac os x

我编译了一些源代码来构建和应用程序,一切都编译正常,但现在我遇到链接/依赖错误,因此应用程序在加载时崩溃。

这是一个错误

Dyld Error Message:
  Library not loaded: libstreamanalyzer.0.dylib
  Referenced from: /usr/local/lib/libkio.5.dylib
  Reason: image not found

在这个有问题的文件上使用 otool -L 我得到

/opt/krita/lib/libkio.5.dylib (compatibility version 5.0.0, current version 5.14.3)
/opt/krita/lib/libkdeui.5.dylib (compatibility version 5.0.0, current version 5.14.3)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
/usr/local/Trolltech/Qt-4.8.6/lib/QtNetwork.framework/Versions/4/QtNetwork (compatibility version 4.8.0, current version 4.8.6)
/usr/local/Trolltech/Qt-4.8.6/lib/QtXml.framework/Versions/4/QtXml (compatibility version 4.8.0, current version 4.8.6)
/usr/local/Trolltech/Qt-4.8.6/lib/QtSvg.framework/Versions/4/QtSvg (compatibility version 4.8.0, current version 4.8.6)
libstreamanalyzer.0.dylib (compatibility version 0.0.0, current version 0.7.8)
libstreams.0.dylib (compatibility version 0.0.0, current version 0.7.8)
/opt/krita/lib/libsolid.4.dylib (compatibility version 4.0.0, current version 4.14.3)
/opt/krita/lib/libkdecore.5.dylib (compatibility version 5.0.0, current version 5.14.3)
/usr/local/Trolltech/Qt-4.8.6/lib/QtDBus.framework/Versions/4/QtDBus (compatibility version 4.8.0, current version 4.8.6)
/usr/local/Trolltech/Qt-4.8.6/lib/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.6)
/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 157.0.0)
/usr/local/Trolltech/Qt-4.8.6/lib/QtGui.framework/Versions/4/QtGui (compatibility version 4.8.0, current version 4.8.6)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)

有人有解决这个问题的建议吗?

[编辑] 在我的系统上使用 find 它显示

/opt/krita/lib/cmake/LibStreamAnalyzer/LibStreamAnalyzerConfig.cmake
/opt/krita/lib/pkgconfig/libstreamanalyzer.pc
/opt/krita/lib/libstreamanalyzer.0.7.8.dylib
/opt/krita/lib/libstreamanalyzer.0.dylib
/opt/krita/lib/libstreamanalyzer.dylib

正在做 导出 DYLD_LIBRARY_PATH=/opt/krita/lib:$DYLD_LIBRARY_PATH 就像 vsoftco 建议的那样,应用程序仍然崩溃并出现完全相同的错误。

OS找不到动态库。苹果的 OS X 与 linux 有点不同,即使你 link 库成功,你在 运行 程序时仍然可能遇到麻烦。

解决方法是设置环境变量

DYLD_LIBRARY_PATH

到您的库 libstreamanalyzer 所在的路径。从 OS X 控制台,输入

export DYLD_LIBRARY_PATH=/path/to/library:$DYLD_LIBRARY_PATH

然后尝试 运行安装该程序。

如果您 运行 来自 XCode 或 Eclipse 等 IDE 的程序,则可以选择指定环境变量。