2013-12-17 9 views
16

Wir haben Probleme beim Kompilieren eines Projekts mit CMake (v2.8.12) unter Windows 7 64Bit mit Visual Studio 2012. CMake gibt uns die folgenden Fehler. Wir haben bereits versucht, Cmake über die Visual Studio-Befehlszeile mit Administratorrechten zu starten. Es scheint ein ähnlicher Fehler in CMake 2.8.11 gewesen zu sein: http://www.cmake.org/Bug/view.php?id=14440Die CXX-Compiler-Kennung ist unbekannt

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". 
+0

Nun, die Fehlermeldung ist ziemlich klar. Es kennt Ihre Compiler ID String nicht. War das jemals funktioniert oder hast du gerade ein Projekt portiert? Bearbeiten Sie die entsprechenden Dateien, um diesen Compiler hinzuzufügen. – RedX

+2

Haben Sie den richtigen Generator verwendet? Ich meine "Visual Studio 11 ist der richtige Generator für Visual Studio 2012" Verwenden Sie Visual Studio 12 nicht als Generator. – drescherjm

Antwort

10

hatte ich das gleiche Problem und reparierte es Cmake als Admin ausgeführt

+10

Hat in meinem Fall nicht geholfen. – BartoszKP

+0

Ich hatte das gleiche Problem beim Kompilieren von SFML 2.1 mit Visual C++ 2013 Compiler. Das Ausführen als Admin hat es behoben. – sjaustirni

+0

Ich habe das gleiche Problem nach dem Upgrade von Windows SDK von 7.0a auf 7.1. Neue Version wurde in C: \ Programme \ (ich glaube, ich nahm die 64-Bit-Version) und VS2012 C++ und CMake konnte nicht mehr kompilieren. Ausführen der Windows-Systemsteuerung | Programme und Funktionen | VS2012 | Repair hat den Trick gemacht und VS und CMake laufen jetzt richtig. – Michbeckable

0

Die gleiche Problem hier mit cmake 2.8.12 und Visual Studio 10 Cmake kann den Compiler möglicherweise nicht finden. Ich habe das Problem gelöst, indem ich die neueste Version deinstalliert und cmake 2.8.10 installiert habe.

2

Ich hatte ähnliches Problem auch, wenn Sie Microsoft Visual Studio 2012 verwenden, die möglicherweise aufgrund der Aktualisierung von KB2781514 fehlt.

Nachdem ich das folgende Update installiert habe, beginnt CMake, Visual Studio 2012 c/C++ - Compiler korrekt zu erkennen.

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

0

ich mit diesem Problem nur auftritt, nachdem ich einige MS-Software deinstalliert. Ich reparierte es durch Reparatur Visual Studio 2012. Zuerst gehen Sie zu [Systemsteuerung], dann wählen Sie Visual Studio und reparieren es, werden die Dinge jetzt gehen.

0

Stellen Sie sicher, dass Sie die richtige Version von Visual Studio ausgewählt haben. Zum Beispiel, Visual Studio 2012 ist Version 11.

0

Ich hatte das gleiche Problem und ich musste "File -> Delete Cache" verwenden, da ich aus Versehen CMake konfiguriert falsche Visual Studio-Version zu verwenden.

0

Wenn Sie CMake 3.4.0 verwenden, versuchen Sie, auf eine neuere Version zu aktualisieren. Ein diesbezüglicher Fehler wurde relativ kürzlich behoben (siehe bug report).

2

Diese Fehlermeldungen

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

bedeutet CMake gefunden haben oder einen Compiler übernehmen, aber es war nicht in der Lage, ein einfaches Testprogramm zu kompilieren.

Werfen Sie einen Blick auf CMakeFiles\CMakeError.log und überprüfen dort die Fehlermeldung zu sehen:

  1. die Compiler-Pfad/Befehlszeile CMake
  2. verwendet haben, was die Fehlermeldung des Compilers

    rief z.B. LINK : fatal error LNK1181: cannot open input file 'kernel32.lib'

Wenn Sie --debug-trycompile zum cmake Anruf hinzufügen CMake wird auch die Dateien, halten es versucht hat, zu kompilieren zu testen (so können Sie Kopieren/Einfügen/Wieder die Befehlszeile aus dem Fehlerprotokoll in Ihrem cmd Shell).

Das letzte Mal hatte ich dieses Problem ...

Das letzte Mal, als ich dieses Problem hatte, war, als meine Standardinstallation von Visual Studio 2012 Professional kein Windows SDK installierte (das Fehlerprotokoll zeigte einen fehlenden SDK-Header).

So überprüfen Sie Ihre SDK-Installation z. Überprüfen Sie, ob Sie einen Ressourcen-Compiler installiert haben. Es sollte ähnlich wie in einem Pfad sein:

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

Da ich diesen fehlte - oder genauer jeden SDK - ich installierte Windows 8.1 SDK (seit Visual Studio 2012 funktioniert Windows-Ziel 8.x) und voila mein CMake wieder konnte um die (Test-) Programme zu kompilieren.

Referenz

0

stand ich das gleiche Problem. Das Erstellen und Ausführen eines Projekts von Visual Studio funktionierte nicht für mich. Allerdings funktionierte folgendes für mich:

  • Öffnen Sie die Eingabeaufforderung für Entwickler von Visual Studio-Tools.
  • Wechseln Sie in das Verzeichnis, in dem cmake.exe vorhanden ist.
  • Führen Sie es.

Hoffen wir, es funktioniert auch für Sie.