2016-11-12 33 views
0

我有大約十幾個程序是在QT創建器中製作的,其中一個程序不會在IDE中打開,這意味着如果我從命令行打開它,它運行良好,gdb和valgrind找不到任何異常。但是,當我嘗試Qt Creator中打開它,我立刻得到錯誤program has unexpectedly finished,當我在調試模式下運行它,我得到這個回溯:如何調試程序不在IDE中打開?

1 ?? 
2 ?? 
3 ?? 
4 ?? 
5 ?? 
6 ?? 
7 ?? 
8 ?? 
9 ?? 
10 ?? 
11 ?? 
12 ?? 
13 ?? 
14 ?? 
15 ?? 
16 ?? 
17 ?? 
18 glXGetFBConfigs 
19 glXChooseFBConfigSIGX 
20 ?? 
21 ?? 
22 ?? 
23 QXcbWindow::create() 
24 QXcbIntegration::createPlatformWindow(QWindow *) const 
25 QWidgetPrivate::create(bool) 
26 QWidgetPrivate::create_sys(unsigned long long, bool bool) 
27 QWidget::create(unsigned long long, bool, bool) 
28 QWidget::setVisible(bool)  
29 main              main.cpp 62 

我能做些什麼呢?因爲我需要跟蹤工具...

+0

你可以在visual studio中運行它,並使用調試器嗎? –

+0

@OmidCompSCI我不這麼認爲,我在Ubuntu和Visual Studio代碼似乎沒有正確導入項目。 –

回答

0

安裝AMDGPU-PRO後遇到同樣的問題。 QT Creator在運行您正在開發的程序之前將環境變量LD_LIBRARY_PATH設置爲/usr/lib/x86_64-linux-gnu。在命令行shell中未設置此變量(至少在我的計算機上,使用echo $LD_LIBRARY_PATH進行測試)。

要在QT Creator中更改此變量,請單擊「項目」圖標。選擇項目,然後點擊Build &運行並運行。在「運行環境」下單擊詳細信息並選擇LD_LIBRARY_PATH。點擊Unset爲我解決問題。

顯然,如果您未取消設置此變量,則每當您在.pro文件中添加庫時,QT Creator都會爲其添加一個新目錄。如果LD_LIBRARY_PATH確實需要此目錄項,則取決於該庫是否位於標準庫搜索路徑中。在命令行中,您可以使用ldconfig -p | grep <yourlib>進行測試。而不是在QT Creator中取消設置變量,您也可以編輯它以保留添加的庫的目錄,並刪除/usr/lib/x86_64-linux-gnu