CMakeが生成した実行可能ファイルはgdbデバッグ可能

806 ワード

転自:欣宇コラム、学海を漫遊する旅
通常は./を呼び出します.configureの場合、CXXFLAGSまたはCFLAGSを設定することでプログラムのデバッグをサポートできます.つまり、GDBでプログラムの実行情報を表示できますが、cmakeコンパイル時には、cmakeプロシージャとその後のmakeおよびmake installにデバッグ情報を追加できません.
$gdbデバッグで次のエラーが発生しました.
      (no debugging symbols found)
実はcmakeがコンパイル時にgdbデバッグをサポートできるようにすることができます.以下の方法で設定できます.
CMakeLists.txtには以下のように加えられる.
SET(CMAKE_BUILD_TYPE "Debug")
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g2 -ggdb")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")

なぜならCMakeにはCMAKE_という変数があるからです.BUILD_TYPE、可能な値はDebug Release RelWithDebInfo>とMinSizeRelです.
この変数値がDebugの場合、CMakeは変数CMAKE_を使用します.CXX_FLAGS_DEBUGとCMAKE_C_FLAGS_DEBUGの文字列はコンパイルオプションとしてMakefileを生成します.
その後、cmakeを再cmakeした後、生成された実行可能ファイルをgdbで実行できます.