2013-08-26 46 views
2

試圖從Qt的5.1建立一個例子程序,我得到這個運行時錯誤:的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 

開始與調試器的方案,在主要的第一個指令一個破發點() ,我得到這個錯誤信息(相對於二進制代碼的位置):

The inferior stopped because it received a signal from the Operating System. 
Signal name: SIGTRAP 
Signal meaning: Trace/breakpoint trap 

我不知道如何解決它。
這個例子是從Qt文檔創建樹視圖的簡單例子。 在Qmake文件我註明:QT += widgets

錯誤Reason: image not found並不是指一個位圖圖像,不是嗎?

我錯了,還是很多人在使用Qt5時遇到問題?

平臺的:Qt 5.1和Mac OS-X 10.7,QtCreator 2.7.2

---新的試驗---
在相同的環境:
- 「純C++項目(CMake的構建) 「工作正常。
- 「Qt控制檯應用程序」與此問題中提到的應用程序具有相同的問題。

---項目的源代碼---

Pro的文件:

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(); 
} 
+0

'原因:image not found'絕對不是引用位圖圖像。你試過Google嗎?這些可能會有所幫助:[here](http:// stackoverflow。com/questions/13554520/dyld-not-loaded-reason-image-not-found-libopencv-core-2-4-dylib)和[here](http://stackoverflow.com/questions/720162/framework-linking -error-image-not-found) – Boris

+0

嘗試製作一個非常基本的應用程序;在Qt Creator中創建一個新的GUI應用程序,編譯並運行它。那樣有用嗎?注意:我在OSX 10.8.4上使用Qt 5.1時沒有任何問題。 –

+0

@KurtPattyn:這就是我所做的,我從Qt的示例目錄中獲取了一個測試項目。 – Pietro

回答

1

的問題是,你的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事後確認。然後重新運行應用程序。