wake-up-neo.com

CMake unter Windows

Ich versuche CMake unter Windows auszuführen und erhalte 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
10
João Abrantes

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

Kurz gesagt, Sie hatten ein Hühnchen-und-Ei -Problem.

CMakes Compiler-Erkennung ist mächtig, aber seit dem ersten Versuch

  • sie haben kein expliziter Generator zur Verwendung mit -G angegeben.
  • es konnte kein Visual Studio installiert werden
  • in Ihrer PATH-Umgebung wurde kein C/C++ - Compiler gefunden
  • es konnte keine Umgebungsvariable CC gefunden werden, die mit dem vollständigen Pfad zu einem Compiler definiert wurde

Es war standardmäßig nmake.

Nun kommt das Problem: Es speichert die impliziten Generator-/Compiler-Einstellungen in seinem variablen Cache (siehe CMAKE_GENERATOR in CMakeCache.txt). Was ist eine sehr nützliche Funktion, wenn mehrere Compiler installiert sind.

Wenn Sie dann jedoch die Umgebungsvariable CC deklarieren, wie in der Fehlermeldung bereits vermerkt, ist es zu spät, da die Wahl Ihres Generators beim ersten Versuch berücksichtigt wurde.

Ich sehe hier zwei Möglichkeiten:

  1. Überschreiben Sie die Generatorauswahl, indem Sie die richtige mit cmake.exe -G "MinGW Makefiles" .. angeben (wie in der Antwort von @Guillaume angegeben).
  2. Löschen Sie das binäre Ausgabeverzeichnis Ihres Projekts (einschließlich CMakeCache.txt), und führen Sie cmake.exe .. aus, nachdem Sie den bin-Ordner Ihres Compilers zu Ihrer PATH-Umgebung hinzugefügt haben.

Verweise

9
Florian

Wie wurde dein cmake installiert? Wenn Sie es mit cygwin installiert haben, probieren Sie jetzt die neueste Windows-Version von cmake official site und stellen Sie die PATH-Variable ein, um sicherzustellen, dass die richtige cmake-Version verwendet wird. Es hat für mich funktioniert, hoffe es hilft dir auch.

0
Kexiii