CMake sur Windows

J’essaie d’exécuter CMake sous Windows et j’obtiens le message d’erreur suivant:

-- The C comstackr 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 comstackr cl from the command line. This environment is unable to invoke the cl comstackr. To fix this problem, run cmake from the Visual Studio Command Prompt (vcvarsall.bat). Tell CMake where to find the comstackr by setting either the environment variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to the comstackr, or to the comstackr 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 problème de type œuf et poule .

La détection du compilateur de CMake est puissante, mais depuis – lors du premier essai –

  • vous n’avez donné aucun générateur explicite à utiliser avec -G
  • il n’a pas pu trouver un Visual Studio installé
  • il n’a pas pu trouver de compilateur C / C ++ dans votre environnement PATH
  • il n’a pas pu trouver une variable d’environnement CC définie avec le chemin complet du compilateur

Il était par défaut de 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:

  1. Annulez le choix du générateur en donnant le bon choix avec cmake.exe -G "MinGW Makefiles" .. (comme le suggère la réponse liée par @Guillaume)
  2. Supprimez le répertoire de sortie binary de votre projet (y compris CMakeCache.txt ) et cmake.exe .. après avoir ajouté le dossier bin votre compilateur à votre environnement PATH .

Références

  • Exécution de CMake sous Windows
  • Quel est le générateur par défaut pour CMake dans Windows?
  • Erreur CMake dans CMakeLists.txt: 30 (projet): aucun CMAKE_C_COMPILER n’a pu être trouvé.
  • CMake: comment spécifier la version de Visual C ++ à utiliser?

Comment votre cmake a-t-il été installé? Si vous l’avez installé à l’aide de cygwin, essayez maintenant la dernière version 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.