CMakeをGNU Makeと共に使用し、すべてのコマンドを正確に表示したい(たとえば、コンパイラーの実行方法、すべてのフラグなど)。
GNU makeには--debug
がありますが、他に役立つオプションはありますか? CMakeは、デバッグ目的で生成されたMakefileに追加のフラグを提供しますか?
Makeを実行するときに、VERBOSE=1
を追加して、完全なコマンド出力を表示します。例えば:
cmake .
make VERBOSE=1
または、-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
をcmakeコマンドに追加して、生成されたMakefileから永続的な冗長コマンド出力を得ることができます。
cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON .
make
興味のない出力を減らすために、次のオプションを使用できます。オプションCMAKE_RULE_MESSAGES=OFF
は[33%] Building C object ...のような行を削除しますが、--no-print-directory
は、make[1]: Entering directory
やmake[1]: Leaving directory
のような行を除外して現在のディレクトリを出力しないようにmakeに指示します。
cmake -DCMAKE_RULE_MESSAGES:BOOL=OFF -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON .
make --no-print-directory
CMakeLists.txt
ファイルのオプションを次のように設定すると便利です。
set(CMAKE_VERBOSE_MAKEFILE ON)
CMake GUIを使用する場合、詳細ビューにスワップすると、オプションはCMAKE_VERBOSE_MAKEFILEと呼ばれます。
または、次のようにシェルでVERBOSE環境変数をエクスポートするだけです:export VERBOSE=1
-ggdb
フラグが存在することを確認するために、同様のことを試みていました。
クリーンなディレクトリでmakeを呼び出し、探しているフラグをgrepします。 debug
ではなく、ggdb
を探しています。
make VERBOSE=1 | grep debug
-ggdb
フラグはあいまいなので、コンパイルコマンドのみが表示されました。