CMake では、set(CMAKE_BUILD_TYPE debug)
と はset(CMAKE_CXX_FLAGS -g)
どちらもデバッグに関連しますが、目的と使用法は少し異なります。
-
set(CMAKE_BUILD_TYPE デバッグ)
- これにより、プロジェクト全体のビルド タイプがデバッグ モードに設定されます。
- Visual Studio などのマルチ構成ジェネレーターでは、ユーザーが IDE でビルド タイプを選択できるため、この設定は望ましい効果を発揮しない可能性があります。
CMAKE_BUILD_TYPE
に設定すると、他の特定の設定debug
に加えて、CMake がのフラグを使用することを意味します。debug
CMAKE_CXX_FLAGS_DEBUG
- 通常はデフォルトで
CMAKE_CXX_FLAGS_DEBUG
含まれます-g
が、他のフラグが含まれる場合もあります。
-
set(CMAKE_CXX_FLAGS -g)
- これにより、C++ コンパイラのフラグが直接設定され、
-g
オプションが追加されます。これは、生成されたバイナリにデバッグ情報が含まれることを意味します。 - これは単なるフラグであり、
CMAKE_BUILD_TYPE
ビルド タイプ全体の設定を伴うものではありません。 - この方法でのフラグの設定は、マルチ構成ジェネレーターと単一構成ジェネレーターの両方で機能しますが、注意しないと、他の重要なフラグを上書きする可能性があります。
- これにより、C++ コンパイラのフラグが直接設定され、
要約:
set(CMAKE_BUILD_TYPE debug)
デバッグ フラグが設定されるだけでなく、関連する他のビルド タイプにも影響を与える可能性があります。