0

我正在做 Qt 项目。我已经成功安装了 QJson。并使用解析器解析数据。我的代码编译成功,但在运行时它给了我以下错误:

dyld:库未加载:libqjson.0.dylib

引用自:/Users/sanjay/untitled1-build-desktop-Qt_4_8_3_in_PATH_ System _Debug/untitled1.app/Contents/MacOS/untitled1

原因:找不到图片

我在 Qt 创建器中添加了库作为外部库。它在我的 .pro 文件中添加了以下代码:

macx: LIBS += -L$$PWD/../build/_preferred_pa​​th_/lib/ -lqjson

INCLUDEPATH += $$PWD/../build/_preferred_pa​​th_/include/qjson

DEPENDPATH += $$PWD/../build/_preferred_pa​​th_/include/qjson

谁能告诉我我做错了什么?

4

3 回答 3

0

如果您的应用程序编译成功,则说明 pro 文件中定义的项目配置正确(包括 LIBS 配置)。

在这种情况下,您的应用程序在运行时失败,这意味着在库路径中找不到 libqjson.0.dylib。首先使用 otool 工具 (http://tech-queries.blogspot.com/2011/04/dynamic-library-dependency-on-mac-os-x.html) 检查 json 库如何与您的库链接。该工具将帮助您检测问题,检测后您可以:

库步骤的重新链接可以在 pro 文件中设置为构建后步骤。这是示例:

macx {
    QMAKE_POST_LINK = install_name_tool -change libqjson.0.dylib @loader_path/relative_path_to_library/libqjson.0.dylib  your_binary_file
于 2012-11-23T20:57:52.883 回答
0

在终端中,输入:

otool -L /Users/sanjay/untitled1-build-desktop-Qt_4_8_3_in_PATH_System_Debug/untitled1.app/Contents/MacOS/untitled1

它会告诉您每个依赖库的预期位置。

于 2012-11-24T19:26:21.567 回答
0

确保该库位于您的应用程序的应用程序文件中。给出完整的路径名,如 LIBS += "lib/libqjson.dylib"

我使用了上述指令,它对我有用。

于 2012-11-23T15:30:24.503 回答