2013-02-07 10 views
27

Cmake diese Warnung gibt, wenn ein Drittanbieter-Skript Aufbau:CMAKE_TOOLCHAIN_FILE wurde vom Projekt nicht verwendet

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

    CMAKE_TOOLCHAIN_FILE 

Gibt es irgendwelche gemeinsamen Ratschläge, was muss ich überprüfen oder, wie dieses Problem beheben?

+0

Könnten Sie bitte weitere Informationen geben? Welche Skript-, Betriebssystem-, CMake-Version und welche Befehlszeilenoptionen haben Sie für die Generierung verwendet? –

+2

Es ist mir egal. Für Einzelheiten siehe [maillist] (http://www.cmake.org/pipermail/cmake/2011-February/042556.html). – Answeror

+0

@Answeror Guter Punkt – pospec4444

Antwort

32

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

Nun, das ist hier ein Sonderfall: CMAKE_TOOLCHAIN_FILE wird von CMake verwendet, wenn Sie das Build zum ersten Mal konfigurieren, aber da Sie die Toolchain für einen bereits konfigurierten Build nicht ändern können, wird es jedes Mal ignoriert also die Warnung.

Wie @Answeror sagte, können Sie die Warnung ignorieren, aber wenn es Sie wirklich stört, können Sie es verstecken, indem Sie --no-warn-unused-cli zu cmake geben.

+21

Ich endete mit dem Entfernen der cmake-Dateien mit 'rm -rf CMakeCache.txt CMakeFiles /'. –

+1

Vielen Dank js für den obigen Kommentar! Ich löschte CMakeCache.txt und konnte nicht herausfinden, warum es immer noch nicht funktionierte. Das Löschen von CMakeFiles ist ebenfalls wichtig. – peastman

+0

Ich sah den Kommentar sehr spät, also schrieb ich es wieder als Antwort und hoffe, OP akzeptiert es. Ein großes Lob an @js! – h0ru5

6

Im Fall erhalten Sie diese Meldung mit CLION nach Sie die -DCMAKE_TOOLCHAIN_FILE=xxx Option, sollten Sie alle löschen die CMake Verzeichnisse erstellen.

Do

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

dann alle Verzeichnisse bauen löschen. Dann tun

Tools-> CMake -> Reload the CMake Project 

Sobald Sie dies tun, werden Sie immer noch die Warnung erhalten, aber zumindest wird es zum ersten Mal beobachtet werden Cmake ausgeführt wird.

1

Das gleiche passiert hier, wie @js darauf hingewiesen hat, bedeutet dies in der Regel, dass Sie Relikte von cmake aus einer früheren Konfiguration erstellen.

Tun Sie eine rm -rf CMakeCache.txt CMakeFiles/ und die Nachricht wird beim ersten Mal die cmake -DCMAKE_TOOLCHAIN_FILE=foo.cmake . gehen. Beim zweiten Mal werden sie wieder da sein und @ @Guilaume antwortete, das sei in Ordnung.

P. S .: Ich habe zuerst eine git clean --force aber da diese Dateien in der Regel in .gitignore sind, das tut nicht den Build zurückgesetzt.

Verwandte Themen