Qt Creator Linux断点在普通C ++项目中跳过

时间:2012-07-16 11:16:31

标签: linux qt qt4

嗯,标题几乎说明了一切。我启动Qt Creator,创建一个新项目并单击普通的C ++选项。它在main.cpp文件中创建以下代码:

#include <iostream>

using namespace std;

int main()
{
    cout << "Hello World!" << endl;
    return 0;
}

我在coutreturn开头的行上放了一个断点。

我将项目模式设置为debug。

我单击播放按钮并显示错误。

它不会在断点处停止。

如果我做了完全相同的事情,但创建了一个Qt GUI应用程序,它可以工作。

非常感谢帮助。

谢谢。

哦,是的,如果它有所不同,我正在使用最新版本的Linux Mint,据我所知,GCC和GDB已经安装。

编辑:这是:

编译输出:

23:27:37: Running build steps for project untitled2...
23:27:37: Starting: "/usr/bin/qmake-qt4" '/home/jean-luc/Desktop/untitled folder/untitled2/untitled2.pro' -r -spec linux-g++ CONFIG+=debug CONFIG+=declarative_debug
23:27:37: The process "/usr/bin/qmake-qt4" exited normally.
23:27:37: Starting: "/usr/bin/make" -w
make: Entering directory `/home/jean-luc/Desktop/untitled folder/untitled2-build-desktop-Qt_4_8_1_in_PATH__System__Debug'
g++ -c -pipe -g -Wall -W -DQT_WEBKIT -I/usr/share/qt4/mkspecs/linux-g++ -I../untitled2 -I../untitled2 -I. -o main.o ../untitled2/main.cpp
g++  -o untitled2 main.o      
{ test -n "" && DESTDIR="" || DESTDIR=.; } && test $(gdb --version | sed -e 's,[^0-9]\+\([0-9]\)\.\([0-9]\).*,\1\2,;q') -gt 72 && gdb --nx --batch --quiet -ex 'set confirm off' -ex "save gdb-index $DESTDIR" -ex quit 'untitled2' && test -f untitled2.gdb-index && objcopy --add-section '.gdb_index=untitled2.gdb-index' --set-section-flags '.gdb_index=readonly' 'untitled2' 'untitled2' && rm -f untitled2.gdb-index || true
make: Leaving directory `/home/jean-luc/Desktop/untitled folder/untitled2-build-desktop-Qt_4_8_1_in_PATH__System__Debug'
23:27:38: The process "/usr/bin/make" exited normally.

申请表输出:

  
    

调试开始     调试已完成

  

2 个答案:

答案 0 :(得分:1)

即使这已经有几天了,我想添加这个解决方案,因为Qt和Creator偶尔会出现问题:Qt Creator有一个讨厌的习惯,建议在发布和调试对象中使用同一文件夹。因此,如果您编译发布版本,然后决定调试程序并进行调试构建,它将使用发布对象链接调试应用程序。 这些对象不能设置断点。您需要完全清理项目,调用qmake并使所有程序处于调试模式。然后你应该能够正确设置断点。

答案 1 :(得分:0)

你可以简单地给cmake命令 cmake -DCMAKE_BUILD_TYPE = Debug

SET(CMAKE_BUILD_TYPE调试​​)将此行添加到CMakeLists.txt并立即调试。断点会被正确击中。