CMake-Fehler bei CMakeLists.txt:30 (Projekt): Es konnte kein CMAKE_C_COMPILER gefunden werden

Lesezeit: 8 Minuten

CMake Fehler bei CMakeListstxt30 Projekt Es konnte kein CMAKE C COMPILER gefunden werden
Caio Fontes

Ich versuche, mit CMake eine Visual Studio-Lösung zu erstellen, um die neueste Version von Aseprite zu kompilieren, und CMake gibt mir immer wieder Folgendes:

No CMAKE_C_COMPILER could be found.
No CMAKE_CXX_COMPILER could be found.

Ich habe GCC bereits heruntergeladen und verwende es Visual Studio 2015.

Ich folge diesem Tutorial:

https://github.com/aseprite/aseprite/blob/master/INSTALL.md

  • Sie können das Projekt entweder für Visual Studio mit seinem Compiler oder für Makefiles mit gcc konfigurieren. Welche Methode hast du ausprobiert?

    – Zywarew

    26. September 2015 um 20:52 Uhr

  • Was ist der cmake-Befehl, den Sie eingeben?

    – Namen53

    27. September 2015 um 0:57 Uhr

  • Verwenden Sie das neueste CMake? Welchen Generator hast du verwendet? Haben Sie die Befehle über die Eingabeaufforderung von Visual Studio 2015 ausgeführt (damit die Umgebungsvariablen des Compilers festgelegt sind)?

    – drescherjm

    27. September 2015 um 7:53 Uhr


  • @bames53 wollte nur die entsprechenden Befehlszeilen für @Caio Fontes zum Ausprobieren hinzufügen: cmake .. -G "Visual Studio 14 2015" oder cmake .. -G "MSYS Makefiles" (wenn gcc bedeutet MinGW). Und ich habe diese Fragen oft gesehen (wie hier, hier oder hier) und ich denke, wir vermissen eine kombinierte / Tutorial-Antwort auf SO.

    – Florian

    28. September 2015 um 9:12 Uhr


  • Mögliches Duplikat von Probleme beim Generieren einer Lösung für VS 2017 mit CMake

    – Mark Ingram

    26. Juli 2017 um 9:21 Uhr

CMake Fehler bei CMakeListstxt30 Projekt Es konnte kein CMAKE C COMPILER gefunden werden
Florian

Diese Fehlermeldungen

CMake Error at ... (project):
    No CMAKE_C_COMPILER could be found.
-- Configuring incomplete, errors occurred!
See also ".../CMakeFiles/CMakeOutput.log".
See also ".../CMakeFiles/CMakeError.log".

oder

CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found.
Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
...
-- Configuring incomplete, errors occurred!

bedeutet nur, dass CMake Ihren C/CXX-Compiler nicht finden konnte, um ein einfaches Testprogramm zu kompilieren (eines der ersten Dinge, die CMake versucht, während es Ihre Build-Umgebung erkennt).

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 hier auf Stack Overflow und einige meiner eigenen Erfahrungen mit CMake unter Microsoft Windows 7/8/10 und Ubuntu 14.04.

Voraussetzungen

  • Sie haben den Compiler/IDE installiert und konnten damit einmal jedes andere Programm kompilieren (direkt ohne CMake)
    • Sie haben beispielsweise die IDE, aber möglicherweise nicht den Compiler oder das unterstützende Framework selbst installiert, wie in beschrieben Probleme beim Generieren einer Lösung für VS 2017 mit CMake oder Wie sage ich CMake, dass es Clang unter Windows verwenden soll?
  • Sie haben das Neueste CMake-Version
  • Sie haben Zugriffsrechte auf das Laufwerk, auf dem CMake Ihre Build-Umgebung generieren soll
  • Sie haben ein sauberes Build-Verzeichnis (weil CMake Dinge vom letzten Versuch zwischenspeichert), zB als Unterverzeichnis Ihres Quellbaums

    Windows-cmd.exe

    > rmdir /s /q VS2015
    > mkdir VS2015
    > cd VS2015
    

    Bash-Shell

    $ rm -rf MSYS
    $ mkdir MSYS
    $ cd MSYS
    

    und stellen Sie sicher, dass Ihre Befehlsshell auf Ihr neu erstelltes binäres Ausgabeverzeichnis zeigt.

Allgemeine Dinge, die Sie ausprobieren können/sollten

  1. Kann CMake mit jedem/Ihrem Standard-Compiler gefunden und ausgeführt werden? Laufen, ohne einen Generator zu geben

    > cmake ..
    -- Building for: Visual Studio 14 2015
    ...
    

    Perfekt, wenn der zu verwendende Generator korrekt bestimmt wurde – wie hier Visual Studio 14 2015

  2. Was ist eigentlich gescheitert?

    Schauen Sie im vorherigen Build-Ausgabeverzeichnis nach CMakeFiles\CMakeError.log für jede Fehlermeldung, die für Sie sinnvoll ist, oder versuchen Sie, das generierte Testprojekt unter zu öffnen/kompilieren CMakeFiles\[Version]\CompilerIdC|CompilerIdCXX direkt von der Befehlszeile aus (wie im Fehlerprotokoll zu finden).

CMake kann Visual Studio nicht finden

  1. Versuchen Sie, das Richtige auszuwählen Generator-Version:

    > cmake --help
    > cmake -G "Visual Studio 14 2015" ..
    
  2. Wenn das nicht hilft, versuchen Sie zuerst, die Visual Studio-Umgebungsvariablen festzulegen (der Pfad kann variieren):

    > "c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
    > cmake ..
    

    oder verwenden Sie die Developer Command Prompt for VS2015 Verknüpfung in Ihrem Windows-Startmenü unter All Programs/Visual Studio 2015/Visual Studio Tools (Danke an @Antwane für den Hinweis).

HintergrundHinweis: CMake unterstützt alle Versionen und Varianten von Visual Studio (Express, Community, Professional, Premium, Test, Team, Enterprise, Ultimate usw.). Um den Speicherort des Compilers zu ermitteln, verwendet er eine Kombination aus Durchsuchen der Registrierung (z. B. at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\[Version];InstallDir), Systemumgebungsvariablen und – wenn keiner der anderen etwas gefunden hat – einfach versuchen, den Compiler aufzurufen.

CMake kann GCC nicht finden (MinGW/MSys)

  1. Sie starten das MSys bash Schale mit msys.bat und versuchen Sie einfach, direkt anzurufen gcc

    $ gcc
    gcc.exe: fatal error: no input files
    compilation terminated.
    

    Hier hat es gefunden gcc und beschwert sich, dass ich ihm keine Parameter zum Arbeiten gegeben habe.

    Folgendes sollte also funktionieren:

    $ cmake -G "MSYS Makefiles" ..
    -- The CXX compiler identification is GNU 4.8.1
    ...
    $ make
    

    Wenn GCC nicht gefunden wurde, rufen Sie an export PATH=... um Ihren Compiler-Pfad hinzuzufügen (siehe Wie setze ich die PATH-Umgebungsvariable im CMake-Skript?) und versuche es noch mal.

  2. Wenn es immer noch nicht funktioniert, versuchen Sie, die CXX Compiler-Pfad direkt durch Exportieren (Pfad kann variieren)

    $ export CC=/c/MinGW/bin/gcc.exe
    $ export CXX=/c/MinGW/bin/g++.exe
    $ cmake -G "MinGW Makefiles" ..
    -- The CXX compiler identification is GNU 4.8.1
    ...
    $ mingw32-make
    

    Weitere Einzelheiten finden Sie unter So geben Sie einen neuen GCC-Pfad für CMake an

    Notiz: Bei Verwendung des “MinGW Makefiles”-Generators müssen Sie die mingw32-make Programm, das mit MinGW vertrieben wird

  3. Funktioniert immer noch nicht? Das ist seltsam. Bitte stellen Sie sicher, dass der Compiler vorhanden ist und ausführbare Rechte hat (siehe auch Kapitel Voraussetzungen oben).

    Andernfalls besteht der letzte Ausweg von CMake darin, keine Compiler-Suche selbst zu versuchen und die internen Variablen von CMake direkt zu setzen

    $ cmake -DCMAKE_C_COMPILER=/c/MinGW/bin/gcc.exe -DCMAKE_CXX_COMPILER=/c/MinGW/bin/g++.exe ..
    

    Näheres siehe Cmake berücksichtigt nicht -D CMAKE_CXX_COMPILER=g++ und Cmake-Fehlereinstellungs-Compiler

    Alternativ können diese Variablen auch über gesetzt werden cmake-gui.exe unter Windows. Sehen Cmake kann Compiler nicht finden

Hintergrund: Ähnlich wie bei Visual Studio. CMake unterstützt alle Arten von GCC-Varianten. Es durchsucht die Umgebungsvariablen (CC, CXX usw.) oder versucht einfach, den Compiler aufzurufen. Außerdem erkennt es alle Präfixe (when Cross-Kompilierung) und versucht, es zu allen binutils der GNU-Compiler-Toolchain hinzuzufügen (ar, ranlib, strip, ld, nm, objdumpund objcopy).

  • Nur als Vorwarnung, einige der Links zu cmake docs verweisen auf eine wirklich alte Version von CMake. Denken Sie daran, die Versionsauswahl zu verwenden, um mit der Version übereinzustimmen, die Sie auf Ihrem Computer haben (z du brauchst).

    – jrh

    7. November 2019 um 21:06 Uhr

  • Schöne Liste. Beachten Sie jedoch, dass gcc in Ordnung sein kann, während g++ nicht installiert ist, was den Fehler verursacht.

    – Nick Westgate

    20. März 2021 um 0:58 Uhr

  • Bereitstellen des C/C++-Compilerpfads zu cmake-gui.exe Problem gelöst.

    – Graue Programmerz

    30. Juli 2021 um 10:36 Uhr

CMake Fehler bei CMakeListstxt30 Projekt Es konnte kein CMAKE C COMPILER gefunden werden
Vishnu

Für Ubuntu installieren Sie bitte die folgenden Dinge:

sudo apt-get update && sudo apt-get install build-essential

  • Was für CentOS 7.9 zu verwenden ist

    – Lernender

    27. Februar 2021 um 13:45 Uhr

  • Ich habe das für Ubuntu gemacht, aber es löst den Fehler “Die CXX-Compiler-Identifikation ist unbekannt” aus.

    – Pablo

    Vor 2 Tagen

1646925612 438 CMake Fehler bei CMakeListstxt30 Projekt Es konnte kein CMAKE C COMPILER gefunden werden
Wim Vanhenden

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 scheint ein Problem mit dem Windows 10 SDK zu geben.

Das Hinzufügen der Windows 10 SDKs zu Visual Studio 14 2015 löste das Problem für mich.

Siehe beigefügten Screenshot.

Geben Sie hier die Bildbeschreibung ein

1646925613 258 CMake Fehler bei CMakeListstxt30 Projekt Es konnte kein CMAKE C COMPILER gefunden werden
Rootjack

Das funktioniert bei mir in Ubuntu 17.10 (Kunstvolles Erdferkel):

apt-get update
apt-get install build-essential

1646925614 901 CMake Fehler bei CMakeListstxt30 Projekt Es konnte kein CMAKE C COMPILER gefunden werden
Natalie Cotrill

Ich habe diesen Fehler auch beim Arbeiten mit CMake erlebt:

No CMAKE_C_COMPILER could be found.
No CMAKE_CXX_COMPILER could be found.

Das Feld „Warnung“ im Artikel der MSDN-Bibliothek Visual C++ in Visual Studio 2015 gab mir die Hilfe, die ich brauchte.

Visual Studio 2015 wird nicht standardmäßig mit C++ geliefert. Wenn Sie also ein neues C++-Projekt erstellen, werden Sie aufgefordert, die erforderlichen C++-Komponenten herunterzuladen.

1646925614 696 CMake Fehler bei CMakeListstxt30 Projekt Es konnte kein CMAKE C COMPILER gefunden werden
akm

Ich bin auf dieses Problem gestoßen, als ich libgit2-0.23.4 erstellt habe. Für mich war das Problem, dass C++-Compiler und zugehörige Pakete daher nicht mit VS2015 installiert wurden „C:\Programme (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat“ Datei fehlte und Cmake konnte den Compiler nicht finden.

Ich habe versucht, manuell ein C++-Projekt in der GUI von Visual Studio 2015 zu erstellen (C:\Programme (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe) und beim Erstellen des Projekts wurde ich aufgefordert, die C++- und zugehörigen Pakete herunterzuladen.

Nach dem Herunterladen der erforderlichen Pakete konnte ich sehen, dass vcvarsall.bat & Cmake den Compiler finden und erfolgreich mit folgendem Protokoll ausführen konnte:

C:\Users\aksmahaj\Documents\MyLab\fritzing\libgit2\build64>cmake ..
-- Building for: Visual Studio 14 2015
-- The C compiler identification is MSVC 19.0.24210.0
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual        
Studio 14.0/VC/bin/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual  
Studio 14.0/VC/bin/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE)
-- Could NOT find ZLIB (missing:  ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
-- zlib was not found; using bundled 3rd-party sources.
-- LIBSSH2 not found. Set CMAKE_PREFIX_PATH if it is installed outside of 
the default search path.
-- Looking for futimens
-- Looking for futimens - not found
-- Looking for qsort_r
-- Looking for qsort_r - not found
-- Looking for qsort_s
-- Looking for qsort_s - found
-- Looking for clock_gettime in rt
-- Looking for clock_gettime in rt - not found
-- Found PythonInterp: C:/csvn/Python25/python.exe (found version "2.7.1")
-- Configuring done
-- Generating done
-- Build files have been written to:    
C:/Users/aksmahaj/Documents/MyLab/fritzing/libgit2/build64

1646925614 807 CMake Fehler bei CMakeListstxt30 Projekt Es konnte kein CMAKE C COMPILER gefunden werden
Peter Mortensen

Ich hatte die gleichen Fehler mit CMake. In meinem Fall habe ich im anfänglichen CMake-Dialog, in dem wir den Visual Studio-Compiler auswählen müssen, die falsche Visual Studio-Version verwendet.

Dann habe ich es auf “Visual Studio 11 2012” geändert und es hat funktioniert. (Ich habe die Visual Studio Ultimate 2012-Version auf meinem PC). Versuchen Sie im Allgemeinen, eine ältere Version der Visual Studio-Version in das anfängliche CMake-Konfigurationsdialogfeld einzugeben.

988310cookie-checkCMake-Fehler bei CMakeLists.txt:30 (Projekt): Es konnte kein CMAKE_C_COMPILER gefunden werden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy