尝试从Qt 5.1构建示例程序时,出现以下运行时错误:

Starting /Users/pietro/myProgs/ParamGUI/build-6_treeview-Desktop_Qt_5_1_0_clang_64bit-Debug/mv_tree.app/Contents/MacOS/mv_tree...
dyld: Library not loaded: /Users/bld.qt/bamboo-agent-home/xml-data/build-dir/DQTC-LGPLRELEASEBUILD510-OSX106/______________________________PADDING______________________________/lib/QtWidgets.framework/Versions/5/QtWidgets
  Referenced from: /Users/pietro/myProgs/ParamGUI/build-6_treeview-Desktop_Qt_5_1_0_clang_64bit-Debug/mv_tree.app/Contents/MacOS/mv_tree
  Reason: image not found
The program has unexpectedly finished.
/Users/pietro/myProgs/ParamGUI/build-6_treeview-Desktop_Qt_5_1_0_clang_64bit-Debug/mv_tree.app/Contents/MacOS/mv_tree exited with code 0

使用调试器启动程序,并在main()的第一条指令处有一个断点,我得到此错误消息(相对于二进制代码位置):
The inferior stopped because it received a signal from the Operating System.
Signal name: SIGTRAP
Signal meaning: Trace/breakpoint trap

我不知道如何解决它。
该示例是一个简单的示例,该示例根据Qt文档创建了树形 View 。
在qmake文件中,我指定:QT += widgets
错误Reason: image not found没有引用位图图像,不是吗?

我是不是错了,或者很多人对Qt5有疑问?

平台:Qt 5.1,Mac OS-X 10.7,QtCreator 2.7.2

-新测试-
在相同的环境中:
-“普通C++项目(CMake构建)”可以正常工作。
-“Qt控制台应用程序”具有与本问题中提到的应用程序相同的问题。

---项目源代码---

专业版文件:
QT += core
QT -= gui
TARGET  = Qt5Test2
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp

main.cpp文件:
#include <QCoreApplication>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    return a.exec();
}

最佳答案

问题是您的Qt文件不在链接器在可执行文件中指定的位置。

检查可执行文件中以下命令的结果:

otool -L /Users/pietro/myProgs/ParamGUI/build-6_treeview-Desktop_Qt_5_1_0_clang_64bit-Debug/mv_tree.app/Contents/MacOS/mv_tree...

它将显示如下内容:
/Users/pietro/myProgs/ParamGUI/build-6_treeview-Desktop_Qt_5_1_0_clang_64bit-Debug/mv_tree.app/Contents/MacOS/mv_tree...:
    /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 153.0.0)
    /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
    <CUT OUT>/QtCore.framework/QtCore (compatibility version 5.1.0, current version 5.1.1)
   ...

依此类推。

您的情况需要QtWidgets在此处:
/Users/bld.qt/bamboo-agent-home/xml-data/build-dir/DQTC-LGPLRELEASEBUILD510-OSX106/______________________________PADDING______________________________/lib/QtWidgets.framework/Versions/5/QtWidgets

它在那个地方存在吗?如果没有,则将其放在此处,或者使用install_name_tool将可执行文件更改为指向正确的位置。

在后一种解决方案中,您将必须执行以下操作:
install_name_tool -change /Users/bld.qt/bamboo-agent-home/xml-data/build-dir/DQTC-LGPLRELEASEBUILD510-OSX106/______________________________PADDING______________________________/lib/QtWidgets.framework/Versions/5/QtWidgets <THE PATH TO YOUR QtWidgets> <THE PATH TO YOUR EXECUTABLE>

之后在可执行文件上执行otool -L进行确认。然后重新运行该应用程序。

09-10 04:38
查看更多