wake-up-neo.net

CMAKE_TOOLCHAIN_FILE wurde vom Projekt nicht verwendet

Cmake gibt diese Warnung aus, wenn ein Skript eines Drittanbieters erstellt wird:

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

    CMAKE_TOOLCHAIN_FILE

Gibt es allgemeine Ratschläge, was muss ich überprüfen oder wie kann ich das beheben?

39
pleerock

Dies ist die Standardwarnung, die Sie erhalten, wenn Sie eine Befehlszeilenoption angeben, die sie nicht verwendet. Das gibt -DFOO=bar an cmake, wenn die CMakeLists.txt keine FOO-Variable verwendet.

Dies ist nun ein Sonderfall: CMAKE_TOOLCHAIN_FILE wird von CMake verwendet, wenn Sie den Build zum ersten Mal konfigurieren. Da Sie jedoch die Toolchain für einen bereits konfigurierten Build nicht ändern können, wird er jedes Mal, also die Warnung, ignoriert .

Wie @Answeror gesagt hat, können Sie die Warnung ignorieren, aber wenn Sie wirklich gestört werden, können Sie sie ausblenden, indem Sie cmake --no-warn-unused-cli geben.

42
Guillaume

Wenn Sie diese Meldung mit CLion after erhalten und die Option -DCMAKE_TOOLCHAIN_FILE=xxx setzen, möchten Sie alle CMake-Build-Verzeichnisse löschen. 

Tun

Tools-> CMake -> Show Generated CMake Files in File Manager

dann löschen Sie alle Build-Verzeichnisse. Dann mach

Tools-> CMake -> Reload the CMake Project

Sobald Sie dies tun, erhalten Sie immer noch die Warnung, aber es wird zumindest beim ersten Ausführen von cmake beobachtet.

6
Mark Lakata

Dasselbe passierte hier, wie @js hervorgehoben hat, bedeutet dies normalerweise, dass Sie Relikte von cmake aus einer früheren Konfiguration erstellt haben.

Führen Sie einen rm -rf CMakeCache.txt CMakeFiles/ aus und die Nachricht wird weg sein, wenn Sie den cmake -DCMAKE_TOOLCHAIN_FILE=foo.cmake . zum ersten Mal ausführen. Beim zweiten Mal werden sie wieder da sein und als @Guilaume geantwortet hat, das ist in Ordnung.

P.S .: Ich habe zuerst einen git clean --force gemacht, aber da diese Dateien normalerweise in .gitignore sind, führt dies nicht zum Zurücksetzen des Builds aus.

1
h0ru5

Die Gründe für diese bestimmte nicht verwendete Variable wurden bereits in der Antwort von @ Guillaume erläutert. Eine einfache und nützliche Möglichkeit, die Warnung bezüglich der nicht verwendeten Variablen zu umgehen, ist die Verwendung in einer Statusmeldung.

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