2016-11-12 34 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