私は、GNU MakeでCMakeを使用しており、すべてのコマンドを正確に表示したいと思っています(たとえば、コンパイラーの実行方法、すべてのフラグなど)。
GNU makeには--debug
がありますが、他に役立つオプションはそれほどありません。CMakeはデバッグ目的で生成されたMakefileに追加のフラグを提供しますか?
mkdir build; cd build; cmake .. --debug-output; make VERBOSE=1
私は、GNU MakeでCMakeを使用しており、すべてのコマンドを正確に表示したいと思っています(たとえば、コンパイラーの実行方法、すべてのフラグなど)。
GNU makeには--debug
がありますが、他に役立つオプションはそれほどありません。CMakeはデバッグ目的で生成されたMakefileに追加のフラグを提供しますか?
mkdir build; cd build; cmake .. --debug-output; make VERBOSE=1
回答:
makeを実行したら、追加VERBOSE=1
してコマンドの完全な出力を確認します。例えば:
cmake .
make VERBOSE=1
または-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
、生成されたMakefileからの永続的な冗長コマンド出力のためにcmakeコマンドに追加できます。
cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON .
make
あまり興味のない出力を減らすために、以下のオプションを使用したい場合があります。このオプションCMAKE_RULE_MESSAGES=OFF
は、[33%] Building Cオブジェクトのような行を削除します...、--no-print-directory
makeは、make[1]: Entering directory
およびなどの行を除外して現在のディレクトリを出力しないように指示しmake[1]: Leaving directory
ます。
cmake -DCMAKE_RULE_MESSAGES:BOOL=OFF -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON .
make --no-print-directory
cmake -GNinja . ; ninja -v
は、綿毛が最小限の非常に詳細な出力が表示されます。
cmake --build . -- VERBOSE=1
CMakeLists.txt
ファイルのオプションを次のように設定すると便利です。
set(CMAKE_VERBOSE_MAKEFILE ON)
CMAKE_VERBOSE_MAKEFILE
デフォルトではオフにしておく必要があり、デバッグの目的で必要な場合はユーザーが選択できます。
私は-ggdb
旗が存在することを確認するために同様のことを試みていました。
クリーンディレクトリでmakeを呼び出し、探しているフラグをgrepします。私が書くだけでdebug
はなく、探していggdb
ます。
make VERBOSE=1 | grep debug
この-ggdb
フラグはあいまいなので、コンパイルコマンドだけがポップアップしました。