J'essaie d'exécuter CMake sous Windows et j'obtiens le message d'erreur suivant:
-- 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.
Cependant ma variable d'environnement "CC" est définie!
>>echo %CC%
C:\Anaconda2\MinGW\x86_64-w64-mingw32\bin\gcc.exe
Parce que le message d'erreur de CMake est trompeur ici, je pense qu'il mérite une réponse un peu plus détaillée.
En bref, vous avez rencontré un type de problème de type { poulet-et-œuf .
La détection du compilateur de CMake est puissante, mais depuis - lors du premier essai -
-G
PATH
CC
définie avec le chemin complet du compilateurLa valeur par défaut était nmake
.
Maintenant, voici le problème: il se souvient de votre choix implicite de générateur/compilateur dans son cache de variables (voir CMAKE_GENERATOR
dans CMakeCache.txt
). Quelle est une fonctionnalité très utile, si vous avez plusieurs compilateurs installés.
Mais si vous déclarez ensuite la variable d'environnement CC
- comme le suggère le message d'erreur -, il est trop tard car le choix de votre générateur a été mémorisé lors du premier essai.
Je vois deux solutions possibles:
cmake.exe -G "MinGW Makefiles" ..
CMakeCache.txt
) et exécutez cmake.exe ..
après avoir ajouté le dossier bin
du compilateur à votre environnement PATH
.Références
Comment votre cmake a-t-il été installé? Si vous l'avez installé à l'aide de cygwin, essayez maintenant la dernière version de Windows sur le site officiel de cmake et définissez la variable PATH pour vous assurer que la version correcte de cmake est utilisée. Cela a fonctionné pour moi, j'espère que cela vous aidera aussi.