私はGNUMakeでCMakeを使用しており、すべてのコマンド(たとえば、コンパイラーの実行方法、すべてのフラグなど)を正確に確認したいと考えています。
GNU makeには--debug
ありますが、他のオプションはありますか?CMakeは、デバッグ目的で生成されたMakefileに追加のフラグを提供しますか?
makeを実行するときは、追加VERBOSE=1
して完全なコマンド出力を表示します。例えば:
cmake .
make VERBOSE=1
または-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
、生成されたMakefileから永続的な冗長コマンド出力を行うためにcmakeコマンドに追加することもできます。
cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON .
make
あまり興味のない出力を減らすために、次のオプションを使用することをお勧めします。このオプションは、 [33%] Building C object ...CMAKE_RULE_MESSAGES=OFF
のような行を削除しますが、現在のディレクトリを出力しないようにmakeに指示し、やのような行を除外します。--no-print-directory
make[1]: Entering directory
make[1]: Leaving directory
cmake -DCMAKE_RULE_MESSAGES:BOOL=OFF -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON .
make --no-print-directory
CMakeLists.txt
ファイルのオプションを次のように設定すると便利です。
set(CMAKE_VERBOSE_MAKEFILE ON)
または、次のようにシェルでVERBOSE環境変数をエクスポートするだけです。
export VERBOSE=1
CMake GUIを使用する場合は、詳細ビューに切り替えて、オプションをCMAKE_VERBOSE_MAKEFILEと呼びます。
-ggdb
私は旗が存在することを確認するために同様のことを試みていました。
クリーンなディレクトリでmakeを呼び出し、探しているフラグをgrepします。debug
私が書くのではなく探していggdb
ます。
make VERBOSE=1 | grep debug
フラグは-ggdb
十分にあいまいで、コンパイルコマンドのみがポップアップしました。
cmake --build . --verbose
LinuxおよびMakefile生成では、これは内部で呼び出される可能性make VERBOSE=1
がcmake --build
ありますが、ビルドシステムに対してより移植性が高くなる可能性があります。たとえば、OS間で作業する場合や、後でNinjaビルドを実行する場合などです。
mkdir build
cd build
cmake ..
cmake --build . --verbose
そのドキュメントは、それが以下と同等であることも示唆していますVERBOSE=1
:
--verbose、-v
実行するビルドコマンドを含め、詳細出力を有効にします(サポートされている場合)。
このオプションは、 VERBOSE環境変数またはCMAKE_VERBOSE_MAKEFILEキャッシュ変数が設定されている場合は省略できます。