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
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
-G
angegeben.PATH
-Umgebung wurde kein C/C++ - Compiler gefundenCC
gefunden werden, die mit dem vollständigen Pfad zu einem Compiler definiert wurdeEs 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:
cmake.exe -G "MinGW Makefiles" ..
angeben (wie in der Antwort von @Guillaume angegeben).CMakeCache.txt
), und führen Sie cmake.exe ..
aus, nachdem Sie den bin
-Ordner Ihres Compilers zu Ihrer PATH
-Umgebung hinzugefügt haben.Verweise
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.