Ich versuche, mit CMake eine Visual Studio-Lösung zu erstellen, um die neueste Version von aseprite zu kompilieren, und CMake gibt mir weiterhin Folgendes:
No CMAKE_C_COMPILER could be found.
No CMAKE_CXX_COMPILER could be found.
Ich habe GCC bereits heruntergeladen und verwende Visual Studio 2015 .
Ich folge diesem Tutorial:
c++
visual-studio
gcc
cmake
visual-studio-2015
Caio Fontes
quelle
quelle
cmake .. -G "Visual Studio 14 2015"
odercmake .. -G "MSYS Makefiles"
(wenngcc
MittelMinGW
). Und ich habe diese Fragen oft gesehen (wie hier , hier oder hier ) und ich denke, wir vermissen eine kombinierte / Tutorial-Antwort auf SO.Antworten:
Diese Fehlermeldungen
oder
bedeuten nur, dass CMake Ihren C / CXX-Compiler zum Kompilieren eines einfachen Testprogramms nicht finden konnte (eines der ersten Dinge, die CMake beim Erkennen Ihrer Build-Umgebung versucht).
Die Schritte zum Auffinden Ihres Problems hängen von der Build-Umgebung ab, die Sie generieren möchten. Die folgenden Tutorials sind eine Sammlung von Antworten auf Stack Overflow und einige meiner eigenen Erfahrungen mit CMake unter Microsoft Windows 7/8/10 und Ubuntu 14.04.
Voraussetzungen
Sie haben ein sauberes Build-Verzeichnis (weil CMake die Dinge vom letzten Versuch zwischenspeichert), z. B. als Unterverzeichnis Ihres Quellbaums
Windows cmd.exe
Bash Shell
und stellen Sie sicher, dass Ihre Befehlsshell auf Ihr neu erstelltes binäres Ausgabeverzeichnis verweist.
Allgemeine Dinge, die Sie versuchen können / sollten
Kann CMake einen beliebigen Standard-Compiler finden und ausführen? Laufen Sie ohne Generator
Perfekt, wenn der zu verwendende Generator richtig bestimmt wurde - wie hier
Visual Studio 14 2015
Was ist eigentlich gescheitert?
Suchen Sie im vorherigen Build-Ausgabeverzeichnis nach
CMakeFiles\CMakeError.log
Fehlern, die für Sie sinnvoll sind, oder versuchen Sie, das unterCMakeFiles\[Version]\CompilerIdC
| generierte Testprojekt zu öffnen / kompilierenCompilerIdCXX
direkt von der Kommandozeile (wie im Fehlerprotokoll gefunden).CMake kann Visual Studio nicht finden
Versuchen Sie, die richtige Generatorversion auszuwählen :
Wenn dies nicht hilft, versuchen Sie zuerst, die Visual Studio-Umgebungsvariablen festzulegen (der Pfad kann variieren):
oder verwenden Sie die Verknüpfung
Developer Command Prompt for VS2015
in Ihrem Windows-Startmenü unterAll Programs
/Visual Studio 2015
/Visual Studio Tools
(danke bei @Antwane für den Hinweis).Hintergrund : CMake unterstützt alle Visual Studio-Versionen und -Varianten (Express, Community, Professional, Premium, Test, Team, Enterprise, Ultimate usw.). Um den Speicherort des Compilers zu bestimmen, wird eine Kombination aus Durchsuchen der Registrierung (z. B. at
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\[Version];InstallDir
), Systemumgebungsvariablen und - falls keiner der anderen etwas gefunden hat - einfach versucht, den Compiler aufzurufen.CMake kann GCC (MinGW / MSys) nicht finden
Sie starten die MSys-
bash
Shell mitmsys.bat
und versuchen einfach, direkt aufzurufengcc
Hier hat es gefunden
gcc
und beschwert sich, dass ich ihm keine Parameter zum Arbeiten gegeben habe.Also sollte folgendes funktionieren:
Wenn GCC nicht gefunden wurde, rufen Sie
export PATH=...
auf, um den Compilerpfad hinzuzufügen (siehe Festlegen der Umgebungsvariablen PATH im CMake-Skript? ), Und versuchen Sie es erneut.Wenn es immer noch nicht funktioniert, versuchen Sie, den
CXX
Compilerpfad direkt durch Exportieren festzulegen (Pfad kann variieren).Weitere Informationen finden Sie unter Festlegen eines neuen GCC-Pfads für CMake
Hinweis : Wenn Sie den Generator "MinGW Makefiles" verwenden, müssen Sie das
mingw32-make
mit MinGW verteilte Programm verwendenFunktioniert immer noch nicht? Das ist komisch. Stellen Sie sicher, dass der Compiler vorhanden ist und über ausführbare Rechte verfügt (siehe auch Kapitel über die Voraussetzungen oben).
Andernfalls besteht der letzte Ausweg von CMake darin, keine Compilersuche selbst durchzuführen und die internen Variablen von CMake direkt von festzulegen
Weitere Informationen finden Sie unter Cmake berücksichtigt -D CMAKE_CXX_COMPILER = g ++ und den Compiler für die Fehlereinstellung von Cmake nicht
Alternativ können diese Variablen auch über
cmake-gui.exe
Windows festgelegt werden. Siehe Cmake kann den Compiler nicht findenHintergrund : Ähnlich wie bei Visual Studio. CMake unterstützt alle Arten von GCC-Aromen. Es durchsucht die Umgebungsvariablen (CC, CXX usw.) oder versucht einfach, den Compiler aufzurufen. Darüber hinaus wird es keine Präfixe erkennen (wenn Cross-Kompilierung ) und versucht , es zu allen binutils der GNU Compiler Toolchain hinzufügen (
ar
,ranlib
,strip
,ld
,nm
,objdump
, undobjcopy
).quelle
Für Ubuntu installieren Sie bitte die folgenden Dinge:
quelle
Dies ist mir passiert, nachdem ich Visual Studio 15 2017 installiert habe.
Der C ++ - Compiler für Visual Studio 14 2015 war nicht das Problem. Es schien ein Problem mit dem Windows 10 SDK zu sein.
Das Hinzufügen der Windows 10-SDKs zu Visual Studio 14 2015 hat das Problem für mich gelöst.
Siehe beigefügten Screenshot.
quelle
Dieser Fehler trat auch bei der Arbeit mit CMake auf:
Das Warnfeld im MSDN-Bibliotheksartikel Visual C ++ in Visual Studio 2015 gab mir die Hilfe, die ich brauchte.
In Visual Studio 2015 ist C ++ nicht standardmäßig installiert. Wenn Sie also ein neues C ++ - Projekt erstellen, werden Sie aufgefordert, die erforderlichen C ++ - Komponenten herunterzuladen.
quelle
Dies funktioniert für mich in Ubuntu 17.10 (Artful Aardvark):
quelle
Ich bin auf dieses Problem gestoßen, als ich libgit2-0.23.4 erstellt habe. Für mich war das Problem, dass der C ++ - Compiler und verwandte Pakete nicht mit VS2015 installiert wurden, daher fehlte die Datei "C: \ Programme (x86) \ Microsoft Visual Studio 14.0 \ VC \ vcvarsall.bat" und Cmake konnte sie nicht finden der Compiler.
Ich habe versucht, ein C ++ - Projekt manuell in der Visual Studio 2015-Benutzeroberfläche ( C: \ Programme (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ devenv.exe ) zu erstellen, und beim Erstellen des Projekts wurde ich aufgefordert, C ++ herunterzuladen & verwandte Pakete.
Nach dem Herunterladen der erforderlichen Pakete konnte ich sehen, dass vcvarsall.bat & Cmake den Compiler finden konnte und erfolgreich mit folgendem Protokoll ausgeführt wurde:
quelle
Ich hatte die gleichen Fehler mit CMake. In meinem Fall habe ich im ersten CMake-Dialogfeld, in dem wir den Visual Studio-Compiler auswählen müssen, die falsche Visual Studio-Version verwendet.
Dann habe ich es in "Visual Studio 11 2012" geändert und es hat funktioniert. (Ich habe Visual Studio Ultimate 2012 Version auf meinem PC). Versuchen Sie im Allgemeinen, eine ältere Version der Visual Studio-Version im anfänglichen CMake-Konfigurationsdialog einzugeben.
quelle
Für mich verschwand dieses Problem unter Windows, als ich mein Projekt in ein flacheres übergeordnetes Verzeichnis verschob, dh in:
C:\Users\spenc\Desktop\MyProjectDirectory
anstatt
C:\Users\spenc\Desktop\...\MyProjectDirectory
.Ich denke, die Ursache des Problems war, dass MSBuild eine Beschränkung der Dateipfadlänge auf 260 Zeichen hat. Dies führt dazu, dass der grundlegende Compilertest, den CMake durchführt, ein Projekt erstellt
CompilerIdCXX.vcxproj
, das mit dem folgenden Fehler fehlschlägt:C1083: Cannot open source file: 'CMakeCXXCompilerId.cpp'
weil die Länge des Dateipfads z
C:\Users\spenc\Desktop\...\MyProjectDirectory\build\CMakeFiles\...\CMakeCXXCompilerId.cpp
überschreitet die MAX_PATH-Einschränkung.
CMake kommt dann zu dem Schluss, dass es keinen CXX-Compiler gibt.
quelle
Stellen Sie sicher, dass Sie die richtige Version von Visual Studio ausgewählt haben. Dies ist schwieriger als es scheint, da Visual Studio 2015 tatsächlich Visual Studio 14 ist und Visual Studio 2012 auch Visual Studio 11. Ich hatte Visual Studio 15, das tatsächlich Visual Studio 2017 ist, falsch ausgewählt, als ich 2015 installiert hatte.
quelle
Keine der hier aufgeführten Lösungen löst mein Problem - nur wenn ich Windows Update für die universelle C-Laufzeit installiere.
Jetzt funktioniert CMake und es hängt kein Link mehr von Visual Studio.
Update für Universal C Runtime unter Windows
quelle
Sie können auch sicherstellen, dass Sie der Sudo-Benutzer sind und READ / WRITE-Zugriff auf das Verzeichnis haben, in dem Sie arbeiten. Ich hatte ein ähnliches Problem unter OS X und habe es behoben, indem ich einfach in den Sudo-Modus gegangen bin.
quelle
Nur für den Fall, dass es jemandem wie mir in Zukunft hilft:
Ich habe dieses Problem seit 24 Stunden auf 3 verschiedenen 64-Bit-Computern (Win7, Windows 8.1 VM und WIn 8.1-Laptop) - beim Versuch, WebKit mit VS 2017 zu erstellen.
Das einfache Problem hierbei ist, dass der VC ++ - Compiler (dh cl.exe und seine abhängigen DLLs) für CMake nicht sichtbar ist. Einfach. Indem Sie die VC ++ - Ordner mit diesen Binärdateien für CMake und Ihre funktionierende Eingabeaufforderung sichtbar machen (wenn Sie Cmake über eine Eingabeaufforderung ausführen), können Sie voila! (Zusätzlich zu den wichtigsten Punkten, die von anderen oben angesprochen wurden)
Wie auch immer, nach allen Arten von Korrekturen - wie in diesen vielen Foren veröffentlicht - stellte ich fest, dass es EINFACH darum ging, sicherzustellen, dass der Inhalt der PATH-Variablen nicht mit mehreren Visual Studio-BIN-Pfaden usw. überfüllt ist. und verweist stattdessen auf:
a) Der Speicherort Ihres Compilers (dh cl.exe für Ihre bevorzugte Version von Visual Studio), der in meinem Fall (auf eine 64-Bit-Plattform ausgerichtet und auf einem 64-Bit-Host entwickelt) wie folgt lautet: C: \ Programme (x86) ) \ Microsoft Visual Studio \ 2017 \ Community \ VC \ Tools \ MSVC \ 14.15.26726 \ bin \ Hostx64 \ x64
b) und zusätzlich den Ordner mit einer abhängigen DLL namens (von der cl.exe abhängig ist): api-ms-win-crt-runtime-l1-1-0.dll - was auf meinem Computer ist:
C: \ Programme (x86) \ Microsoft Visual Studio \ 2017 \ Community \ Common7 \ IDE \ Remote Debugger \ x64
Diese beiden Verzeichnisse, die einer vereinfachten und CUSTOM-Systempfadvariablen hinzugefügt wurden (die unter einer von Admin privilegierten Eingabeaufforderung arbeiten), beseitigten mein "Kein CMAKE_C_COMPILER konnte gefunden werden" und "Kein CMAKE_CXX_COMPILER konnte gefunden werden". Fehler.
Hoffe es hilft jemandem.
quelle
Ich erhalte genau den gemeldeten Fehler, wenn ccache aktiviert ist, wenn ich den Xcode-Generator von CMake verwende . Das Deaktivieren von ccache hat das Problem für mich behoben. Im Folgenden stelle ich einen Fix / Check vor, der für MacOS funktioniert, aber auf anderen Plattformen ähnlich funktionieren sollte.
Offenbar ist es möglich , CMake Xcode Generator (und andere) auch in Kombination mit ccache zu verwenden, wie beschrieben hier . Aber ich habe es nie selbst ausprobiert.
quelle
Ich habe Visual Studio 2015 Update 2 auf Visual Studio 2015 Update 3 aktualisiert und mein Problem behoben.
quelle
Ich hatte das gleiche Problem mit cmake-gui (
No CMAKE_CXX_COMPILER could be found.
), während das Ausführen von CMake über die Befehlszeile einwandfrei funktionierte. Nach dem manuellen Hinzufügen der EinträgeC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin
Für die Umgebungsvariable PATH hat es bei mir funktioniert.
quelle
Für mich hat es funktioniert, die mit Visual Studio gelieferte Developer Command Prompt zu verwenden und dann einfach
cd
zuyour/jcef/dir
startencmake -G "Visual Studio 14 Win64" ..
quelle
Ich hatte das gleiche Problem.
Ich habe versucht, dlib auf meinem Computer zu installieren, und es gab mir diesen Fehler. Das in der Frage erwähnte Tutorial führt zum Herunterladen von Visual Studio 2017. Ich habe dieses Problem gelöst, indem ich VS 2017 deinstalliert und VS 2015 installiert habe
Sie können VS 2015 über diesen Stackoverflow-Thread installieren: So laden Sie Visual Studio Community Edition 2015 herunter (nicht 2017)
quelle
Ich weiß, dass es sich bei dieser Frage um Visual Studio 2015 handelt. Ich habe dieses Problem mit Visual Studio 2017 festgestellt. Bei der Suche auf Google bin ich auf diese Seite gelangt. Nachdem ich mir die ersten 2,3 Antworten angesehen hatte, stellte ich fest, dass dies das Problem bei der Installation von vc ++ ist. Durch die Installation der Workload "Desktop-Entwicklung mit C ++" wurde das Problem behoben.
quelle
Suchen Sie in der Datei Cmakelists.txt nach ARM, um C ++ für ARM zu installieren
Es sind diese Pakete:
C ++ Universal Windows Platform für ARM64 "Nicht erforderlich"
Visual C ++ - Compiler und -Bibliotheken für ARM "Nicht erforderlich"
Visual C ++ - Compiler und -Bibliotheken für ARM64 "Sehr wahrscheinlich erforderlich"
Dann die Probleme
Es wurde kein CMAKE_C_COMPILER gefunden.
Es wurde kein CMAKE_CXX_COMPILER gefunden.
Kann verschwinden, es sei denn, Sie geben einen c-Compiler wie clang an, und möglicherweise funktioniert die Installation von clang zu einem anderen Vorteil.
Sie können optional in cmakelists.txt beide mit # vor enable_language entfernen, wenn Sie nicht für ARM kompilieren.
quelle