set(CMAKE_BUILD_TYPE デバッグと set(CMAKE_CXX_FLAGS -g) の使用法は同じですか?

CMake では、set(CMAKE_BUILD_TYPE debug)と はset(CMAKE_CXX_FLAGS -g)どちらもデバッグに関連しますが、目的と使用法は少し異なります。

  1. set(CMAKE_BUILD_TYPE デバッグ)

    • これにより、プロジェクト全体のビルド タイプがデバッグ モードに設定されます。
    • Visual Studio などのマルチ構成ジェネレーターでは、ユーザーが IDE でビルド タイプを選択できるため、この設定は望ましい効果を発揮しない可能性があります。
    • CMAKE_BUILD_TYPE設定すると、他の特定の設定debugに加えて、CMake がのフラグを使用することを意味します。debugCMAKE_CXX_FLAGS_DEBUG
    • 通常はデフォルトでCMAKE_CXX_FLAGS_DEBUG含まれます-gが、他のフラグが含まれる場合もあります。
  2. set(CMAKE_CXX_FLAGS -g)

    • これにより、C++ コンパイラのフラグが直接設定され、-gオプションが追加されます。これは、生成されたバイナリにデバッグ情報が含まれることを意味します。
    • これは単なるフラグであり、CMAKE_BUILD_TYPEビルド タイプ全体の設定を伴うものではありません。
    • この方法でのフラグの設定は、マルチ構成ジェネレーターと単一構成ジェネレーターの両方で機能しますが、注意しないと、他の重要なフラグを上書きする可能性があります。

要約:

  • set(CMAKE_BUILD_TYPE debug)デバッグ フラグが設定されるだけでなく、関連する他のビルド タイプにも影響を与える可能性があります。

おすすめ

転載: blog.csdn.net/qq_21950671/article/details/132882024