web-dev-qa-db-fra.com

L'identification du compilateur CXX est inconnue

Nous ne parvenons pas à compiler un projet à l'aide de CMake (v2.8.12) sous Windows 7 64 bits avec Visual Studio 2012. CMake nous communique les erreurs suivantes. Nous avons déjà essayé de démarrer Cmake à partir de la ligne de commande Visual Studio en utilisant les droits d'administrateur. Il semble y avoir eu un bogue similaire dans CMake 2.8.11: http://www.cmake.org/Bug/view.php?id=14440

CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:446 (execute_process):
  execute_process given COMMAND argument with no value.
Call Stack (most recent call first):
  C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:48 (CMAKE_DETERMINE_COMPILER_ID_VENDOR)
  C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCCompiler.cmake:131 (CMAKE_DETERMINE_COMPILER_ID)
  CMakeLists.txt:2 (project)


The C compiler identification is unknown
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:446 (execute_process):
  execute_process given COMMAND argument with no value.
Call Stack (most recent call first):
  C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:48 (CMAKE_DETERMINE_COMPILER_ID_VENDOR)
  C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCXXCompiler.cmake:127 (CMAKE_DETERMINE_COMPILER_ID)
  CMakeLists.txt:2 (project)


The CXX compiler identification is unknown
Could NOT find SWIG (missing:  SWIG_EXECUTABLE SWIG_DIR) 
CMake Warning at src/CMakeLists.txt:44 (message):
  SWIG was not found.  You will not be able to compile for C#.


Configuring incomplete, errors occurred!
See also "C:/Users/hci/laser_control/CMakeFiles/CMakeOutput.log".
See also "C:/Users/hci/laser_control/CMakeFiles/CMakeError.log".
17
user3110931

J'ai eu le même problème et l'ai corrigé en cours d'exécution en tant qu'administrateur

10
Fuvizzo

Ces messages d'erreur 

The C compiler identification is unknown
The CXX compiler identification is unknown

signifie que CMake a trouvé ou supposé un compilateur mais qu’il n’a pas été capable de compiler un programme de test simple. 

Examinez CMakeFiles\CMakeError.log et consultez le message d'erreur pour voir:

  1. chemin de compilation/ligne de commande utilisé par CMake 
  2. ce que le message d'erreur appelant le compilateur était 

    par exemple. LINK : fatal error LNK1181: cannot open input file 'kernel32.lib'

Si vous ajoutez --debug-trycompile à l'appel cmake, CMake conservera même les fichiers qu'il a tenté de tester lors de la compilation (vous pouvez donc copier/coller/réexécuter la ligne de commande à partir du journal des erreurs de votre shell cmd.

La dernière fois que j'ai eu ce problème ...

La dernière fois que j'ai eu ce problème, c'était lorsque mon installation standard de Visual Studio 2012 Professional n'a pas installé de SDK Windows (le journal des erreurs montrait un en-tête de SDK manquant). 

Pour vérifier votre installation de SDK, par exemple vérifiez que vous avez installé un compilateur de ressources. Il devrait être dans un chemin similaire à:

C:\Program Files (x86)\Microsoft SDKs\Windows\v[some version]\bin\RC.Exe

Comme il me manquait - ou plus précisément tout SDK - j'ai installé Windows 8.1 SDK (puisque Visual Studio 2012 cible Windows 8.x) et voilà, mon CMake a été capable de compiler à nouveau les programmes (de test).

Référence

2
Florian

J'ai eu un problème similaire aussi, si vous utilisez Microsoft Visual Studio 2012, cela peut être à cause de la mise à jour de KB2781514 est manquant.

Après avoir installé la mise à jour suivante, CMake commence à détecter correctement les compilateurs Visual Studio 2012 c/c ++.

http://www.Microsoft.com/en-us/download/details.aspx?id=36020

2
Jifeng Zhang

J'ai eu le même problème et j'ai dû utiliser le "File -> Delete Cache", car j'ai accidentellement configuré CMake pour utiliser une mauvaise version de Visual Studio.

0
Andrey Rubshtein

J'ai rencontré le même problème. La construction et l'exécution d'un projet à partir de Visual Studio ne m'ont pas fonctionné. Cependant, les actions suivantes ont fonctionné pour moi:

  • Invite de commande ouverte pour les développeurs à partir des outils Visual Studio.
  • Allez au répertoire où cmake.exe est présent.
  • Exécuter.

Espérons que cela fonctionne pour vous aussi.

0
Asif Kazmi

Je viens de rencontrer avec ce problème, après avoir désinstallé un logiciel MS ..__ Je l'ai corrigé par réparation Visual Studio 2012 . Tout d'abord, allez dans [Panneau de configuration], puis sélectionnez Visual Studio et le réparer, les choses vont aller maintenant .

0
wangdq

Assurez-vous de sélectionner la version appropriée de visual Studio . Par exemple, Visual Studio 2012 est la version 11.

0
Rahul Sood

Même problème ici avec cmake 2.8.12 et visual studio 10. Cmake peut ne pas être en mesure de trouver le compilateur. J'ai résolu le problème en désinstallant la dernière version et en installant cmake 2.8.10.

0
Tonmoy

Si vous utilisez CMake 3.4.0, essayez de mettre à niveau vers une version plus récente. Un bogue à ce sujet a été corrigé récemment (voir le rapport de bogue ).

0
Daniel Geier