CMake unter Windows

Lesezeit: 4 Minuten

Benutzeravatar von João Abrantes
João Abrantes

Ich versuche, CMake unter Windows auszuführen, und erhalte die folgende Fehlermeldung:

-- The C compiler identification is unknown
CMake Error at CMakeLists.txt:3 (PROJECT):
  The CMAKE_C_COMPILER:

    cl

  is not a full path and was not found in the PATH.

  To use the NMake generator with Visual C++, cmake must be run from a shell
  that can use the compiler cl from the command line.  This environment is
  unable to invoke the cl compiler.  To fix this problem, run cmake from the
  Visual Studio Command Prompt (vcvarsall.bat).

  Tell CMake where to find the compiler by setting either the environment
  variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
  the compiler, or to the compiler name if it is in the PATH.

Meine Umgebungsvariable “CC” ist jedoch gesetzt!

>>echo %CC%
C:\Anaconda2\MinGW\x86_64-w64-mingw32\bin\gcc.exe

  • Mögliches Duplikat von Running CMake on Windows

    – Guillaume

    8. März 2016 um 14:15 Uhr

  • Kannst du bitte die geben cmake.exe ... Anruf, den Sie verwendet haben? Und eine Vermutung wäre das C:\Anaconda2\MinGW\x86_64-w64-mingw32\bin ist nicht Teil von dir PATH Umgebungsvariable (wie die Fehlermeldung vermuten lässt). Siehe auch hier.

    – Florian

    8. März 2016 um 19:56 Uhr


  • @Florian nur der normale Aufruf: “cmake ..”. Ja, es ist nicht Teil meiner PATH Der Fehler lautet: Teilen Sie CMake mit, wo der Compiler zu finden ist, indem Sie entweder die Umgebungsvariable “CC” oder den CMake-Cache-Eintrag CMAKE_C_COMPILER auf den vollständigen Pfad zum Compiler oder auf den Compilernamen setzen, wenn er sich im PATH befindet.” Also mein CC zeigt auf den vollständigen Pfad und nicht nur auf den Namen. Es sollte kein Problem geben

    – João Abrantes

    9. März 2016 um 13:26 Uhr

  • @JoãoAbrantes Sie müssen auch das MinGW-Binärverzeichnis hinzufügen PATH Weil gcc.exe hängt von DLLs in diesem Verzeichnis ab. Wenn ich meine ansehe gcc.exe in die Dependency Walker-Anwendung Ich bekomme zB einen Hinweis auf LIBWINPTHREAD-1.DLL.

    – Florian

    9. März 2016 um 14:26 Uhr

  • @Florian Ok, ich habe jetzt das MinGW-Binärverzeichnis zu PATH hinzugefügt. Der Fehler bleibt aber 🙁

    – João Abrantes

    9. März 2016 um 15:45 Uhr

Benutzeravatar von Florian
Florian

Da die Fehlermeldung von CMake hier irreführend ist, rechtfertigt sie meiner Meinung nach eine etwas ausführlichere Antwort.

Kurz gesagt, Sie sind auf einen gestoßen Huhn und Ei irgendwie ein Problem.

Die Compiler-Erkennung von CMake ist mächtig, aber da – beim ersten Versuch –

  • du hast keine gegeben expliziter Generator mit verwenden -G
  • Es konnte kein installiertes Visual Studio finden
  • Es konnte keinen C/C++-Compiler in Ihrem finden PATH Umgebung
  • es konnte keine finden CC Umgebungsvariable, die mit dem vollständigen Pfad zu einem Compiler definiert ist

Es war standardmäßig nmake.

Jetzt kommt das Problem: Es merkt sich Ihre implizite Generator-/Compiler-Wahl in seinem Variablen-Cache (siehe CMAKE_GENERATOR in CMakeCache.txt). Dies ist eine sehr nützliche Funktion, wenn Sie mehrere Compiler installiert haben.

Aber wenn du das dann erklärst CC Umgebungsvariable – wie die Fehlermeldung andeutet – ist es zu spät, da die Auswahl Ihres Generators beim ersten Versuch gespeichert wurde.

Ich sehe da zwei mögliche Auswege:

  1. Setzen Sie die Generatorwahl außer Kraft, indem Sie den richtigen mit angeben cmake.exe -G "MinGW Makefiles" .. (wie die von @Guillaume verlinkte Antwort andeutet)
  2. Löschen Sie das binäre Ausgabeverzeichnis Ihres Projekts (einschließlich CMakeCache.txt) und TU cmake.exe .. nachdem Sie Ihren Compiler hinzugefügt haben bin Ordner zu Ihrem PATH Umgebung.

Verweise

  • Ausführen von CMake unter Windows
  • Was ist der Standardgenerator für CMake in Windows?
  • CMake-Fehler bei CMakeLists.txt:30 (Projekt): Es konnte kein CMAKE_C_COMPILER gefunden werden
  • CMake: Wie kann die Version von Visual C++ angegeben werden, mit der gearbeitet werden soll?

  • Ich habe den Pfad C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\bin\Hostx64\x64 hinzugefügt und es hat funktioniert. cl wurde dem Pfad nicht hinzugefügt

    – c3cris

    30. September 2018 um 2:22 Uhr

ich benutze cmake -G "MinGW Makefiles" . Anstatt von cmake .
Es funktionierte!

Ich bin auf das gleiche Problem gestoßen und was bei mir funktioniert hat, war:

  1. Ich habe Visual Studio installiert (im Folgenden dieses Tutorial ).
  • Sie müssen die Version 2019 installieren (es ist jetzt 2021) – es gibt ein paar zusätzliche Dinge, aber es ist in Ordnung. Das Ganze liegt bei etwa 6,7 ​​G.
  • Die braucht man eigentlich nicht pip install dlib Teil und der Rest.
  1. Auf der Grundlage des obigen Tutorials habe ich diesen Pfad zur Umgebungsvariablen (
    C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30037\bin\Hostx64\x64. Die Methode zum Hinzufügen von Pfaden zur Umgebungsvariablen finden Sie auch im obigen Tutorial.)

1390670cookie-checkCMake unter Windows

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy