3

まあ、タイトルはほとんどそれをすべて言います。Qt Creatorを起動し、新しいプロジェクトを作成して、プレーンなC++オプションをクリックします。main.cppファイルに次のコードを作成します。

#include <iostream>

using namespace std;

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

coutまたはで始まる行にブレークポイントを設定しますreturn

プロジェクトモードをデバッグに設定しました。

バグのある再生ボタンをクリックします。

ブレークポイントで停止しません。

まったく同じことをしますが、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.

アプリケーション出力:

デバッグ開始デバッグが終了しました

4

2 に答える 2

1

これはすでに数日前ですが、QtとCreatorで説明されている問題が時々発生するため、この解決策を追加したいと思います。QtCreatorには、リリースオブジェクトとデバッグオブジェクトを同じフォルダーに置くことを提案する厄介な習慣があります。したがって、リリースビルドをコンパイルしてから、プログラムをデバッグしてデバッグビルドを作成すると、デバッグアプリケーションがリリースオブジェクトにリンクされます。これらのオブジェクトにブレークポイントを設定することはできません。プロジェクトを完全にクリーンアップし、qmakeを呼び出して、すべてをデバッグモードにする必要があります。そうすれば、ブレークポイントを適切に設定できるはずです。

于 2012-07-24T09:19:23.290 に答える
0

あなたは単にcmakeコマンドを与えることができますcmake-DCMAKE_BUILD_TYPE= Debug

また

SET(CMAKE_BUILD_TYPE Debug)この行をCMakeLists.txtに追加して、今すぐデバッグします。ブレークポイントは適切にヒットします。

于 2015-05-28T13:43:03.573 に答える