如何在IDE中调试程序无法打开?

时间:2016-11-12 15:35:10

标签: c++ qt

我在QT创建者中有大约十几个程序,其中一个程序无法在IDE中打开,这意味着如果我从命令行打开它,它运行正常,gdb和valgrind不会发现任何异常。但是当我尝试在QT创建者中打开它时,我立即得到错误program has unexpectedly finished,当我在调试模式下运行时,我得到了这个回溯:

 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

我该怎么办?因为我需要跟踪工具......

1 个答案:

答案 0 :(得分:0)

安装AMDGPU-PRO后遇到了同样的问题。 QT Creator在运行您正在开发的程序之前将环境变量LD_LIBRARY_PATH设置为/usr/lib/x86_64-linux-gnu。在命令行shell中,未设置此变量(至少在我的计算机上,使用echo $LD_LIBRARY_PATH进行测试)。

要在QT Creator中更改此变量,请单击“项目”图标。选择项目,然后单击Build& Run and Run。在“运行环境”下,单击“详细信息”,然后选择LD_LIBRARY_PATH。点击Unset为我修复了问题。

显然,如果你没有取消设置这个变量,只要你在.pro文件中添加一个库,QT Creator就会为它添加一个新目录。如果LD_LIBRARY_PATH确实需要此目录条目,则取决于库是否在标准库搜索路径中。在命令行上,您可以使用ldconfig -p | grep <yourlib>对其进行测试。您可以在保留添加的库的目录的同时编辑它,而不是在QT Creator中取消设置变量,只需删除/usr/lib/x86_64-linux-gnu