Linux上で実行されているコードをデバッグしたいだけで、デバッグビルド(-O0 -ggdb
)が必要です。だから私はこれらの事を追加私のCMakeLists.txt
:私はmake VERBOSE=1
を使用して冗長になっコンパイルしようとしましたが、私はどうやらコードが"-g -O2"
でコンパイルされている。このcmake CFLAGS CXXFLAGS変更
... /usr/bin/c++ -D_BSD_SOURCE **-O0 -ggdb** -Wnon-virtual-dtor
-Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W
-Wpointer-arith -Wformat-security -fno-exceptions -DQT_NO_EXCEPTIONS
-fno-check-new -fno-common -Woverloaded-virtual -fno-threadsafe-statics
-fvisibility=hidden -fvisibility-inlines-hidden **-g -O2**
-fno-reorder-blocks -fno-schedule-insns -fno-inline ...
のように、出力を観察
set(CMAKE_BUILD_TYPE DEBUG)
set(CMAKE_C_FLAGS "-O0 -ggdb")
set(CMAKE_C_FLAGS_DEBUG "-O0 -ggdb")
set(CMAKE_C_FLAGS_RELEASE "-O0 -ggdb")
set(CMAKE_CXX_FLAGS "-O0 -ggdb")
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb")
set(CMAKE_CXX_FLAGS_RELEASE "-O0 -ggdb")
これは私が望むものではありません。 "-O0 -ggdb"
のみを強制的に使用するにはどうすればよいですか?
デバッグ可能なビルドが必要な場合は、コマンドラインでdebug configureを実行します。 "cmake -DCMAKE_BUILD_TYPE =デバッグ"結果のビルドには、指定されたビルドシステムのデバッグフラグがオンになります。 cmakeファイル自体を変更する理由はありません。別の-D引数を指定してCMAKE_C_FLAGS値を送信することもできます。 – Atifm