私は、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-directorymakeは、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フラグはあいまいなので、コンパイルコマンドだけがポップアップしました。