web-dev-qa-db-ja.com

CMAKE_TOOLCHAIN_FILEはプロジェクトで使用されませんでした

Cmakeは、1つのサードパーティスクリプトをビルドするときにこの警告を出します。

CMake Warning:
  Manually-specified variables were not used by the project:

    CMAKE_TOOLCHAIN_FILE

何を確認する必要があるのか​​、またはこれを修正するための一般的なアドバイスはありますか?

44
pleerock

これは、使用していないコマンドラインオプションを指定するときに表示される標準の警告です。それは-DFOO=bar CMakeLists.txtがFOO変数を使用しない場合にcmakeします。

さて、これはちょっとした特別なケースです:CMake_TOOLCHAIN_FILEは、ビルドを初めて構成するときにCMakeによって使用されますが、既に構成されたビルドのツールチェーンを変更できないため、毎回無視されます。したがって、警告。

@Answerorが言ったように、警告は無視しても問題ありませんが、本当に気になる場合は、--no-warn-unused-cliをcmakeします。

45
Guillaume

この特定の未使用変数の理由は、@ Guillaumeの回答で既に説明されています。未使用の変数に関する警告を回避する簡単で便利な方法は、ステータスメッセージで使用することです。

message(STATUS "Using toolchain file: ${CMAKE_TOOLCHAIN_FILE}.")
3
Roland Sarrazin

@jsが指摘したように、ここでも同じことが起こりました。これは通常、過去の構成からcmakeの遺物をビルドしたことを意味します。

rm -rf CMakeCache.txt CMakeFiles/を実行すると、最初にcmake -DCMAKE_TOOLCHAIN_FILE=foo.cmake .。二度目、彼らは再びそこにいるだろうし、@ Guilaumeが答えたようにそれは大丈夫だ。

追伸:最初にgit clean --forceただし、これらのファイルは通常.gitignore、それはnotビルドをリセットします。

1
h0ru5