【问题标题】:resolving linking dependencies mac os x解决链接依赖关系 mac os x
【发布时间】:2015-04-08 20:10:08
【问题描述】:

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

这是一个错误

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 建议的那样,应用程序仍然崩溃并出现完全相同的错误。

【问题讨论】:

    标签: macos software-distribution building


    【解决方案1】:

    操作系统找不到动态库。苹果的OS X和linux有点不一样,即使你链接库成功了,运行程序的时候也可能会遇到麻烦。

    解决办法是设置环境变量

    DYLD_LIBRARY_PATH
    

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

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

    然后尝试运行程序。

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

    【讨论】:

    • 我试过了,但它仍然崩溃,请参阅我的最新编辑。
    • 您是从终端行运行程序吗?如果是,请确保您从同一个终端会话运行程序(即,不要关闭终端或打开新选项卡,因为导出语句不是持久的,除非您将其放在 .profile 中)
    • 是的,我在导出路径后直接在同一个终端中尝试。
    • @steffan 不确定发生了什么,通常应该这样做。我假设你使用 bash。输入echo $DYLD_LIBRARY_PATH时是否设置了路径?另外,尝试将路径放在双引号内,如 "path/to/lib" 并使用 export DYLD_LIBRARY_PATH="/opt/krita/lib" 希望它有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    • 2014-12-18
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 2016-02-16
    • 2017-02-20
    相关资源
    最近更新 更多