2017-01-13 19 views
1

私の目標は、cmakeによって直接呼び出されたg++の呼び出しに関する詳細をコマンドラインから見ることでした。私はこの質問の目的のためにmakeの出力を気にしません。`cmake --verbose = 1`は冗長cmake出力を出力しますが、` cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL = ON`は出力しません。

official FAQthe accepted answer on a related questionによると、私は例えばによって、CMAKE_VERBOSE_MAKEFILE:BOOL=ONが私の生成CMakeCache.txtに設定されていることを確認しなければなりませんコマンドラインフラグ-DCMAKE_VERBOSE_MAKEFILE:BOOL=ONを渡します。私がしたとき、それはたくさんのプロパティを再度照会しましたが、呼び出しに関する追加情報はありませんでした。

しかし、フラグ--verbose=1を使用してcmakeを呼び出すと、私は必要なものを正確に表示しました。

これらの2つのオプションはどのように異なるのですか? --verbose=1は推奨されていませんか?

答えて

1

いいえ、それは受け入れられた答えとあなたがリンクしているCMakeのFAQとは違います。そうでなければ私は驚くでしょう。
正確には、あなたはになると言っていません。CMakeCache.txtを修正してください。 このファイルは変更しないでください。簡単に間違いを犯す可能性があるので、良い習慣ではありません。。あなたの代わりに正確に両方のソースが言う従っている場合は
、すなわち

cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON . 
make 

たり、コンパイルとリンクの段階から詳細な出力を見ているだろう

cmake . 
make VERBOSE=1 

。あなたは CMakeLists.txtファイルに以下の行を置けば
また、あなたは同じ効果を達成する必要があります

set(CMAKE_VERBOSE_MAKEFILE on) 

あなたが以前にキャッシュされた構成に起因する可能性のいずれかの場合に出力が表示されていないという事実。
可能であれば、ソース外のビルドを行うことをお勧めします。この場合、ビルドディレクトリを削除するだけで、すべてのCMake生成ファイルとディレクトリを取り除くことができます。
これで、以前に生成された構成やビルドファイルからの干渉なく、新しい構成を再作成できます。
もちろん、私は間違っているかもしれないし、バグを打つかもしれませんが、そうは思わないでしょう。


EDIT:それは構成フェーズで使用すると、すなわち、あなたは何のコマンドラインオプションのセットでMakefileを、使用していない、コンパイルしていないためです。プロジェクトビルドのどの段階(設定、コンパイル、インストール)においても、cmakeコマンド自体は冗長なオプションではありません。 cmake .を実行すると追加の設定情報は表示されませんが、makeを実行すると追加情報が表示されます。
したがって、CMAKE_VERBOSE_MAKEFILEは、CMake自体から詳細な出力を取得する場合に設定するための間違ったオプションです。

+0

私は、コマンドラインにそのフラグを追加し、CMakeCache.txtに直接入れることを試みたことを述べておきます。私はその特定のファイルを将来修正することは避ける。 – Cliabhach

+0

私の質問にサンプル出力を追加してみましょう – Cliabhach

+0

Ok。私のために体から明らかではなかったので、私はタイトルと、それを行う別の方法を言及している身体を言うタイトルに混乱していた...;) – fedepad

関連する問題