Erreur CMake sur CMakeLists.txt: 30 (projet): aucun compilateur CMAKE C n'a pu être trouvé

j'essaie de faire une solution de studio visuel avec CMake pour compiler la dernière version d'aseprite et CMake continue de me donner le:

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

j'ai déjà téléchargé GCC, et j'utilise Visual Studio 2015 .

je suis ce tutoriel:

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

64
demandé sur Peter Mortensen 2015-09-26 23:22:19

15 réponses

ces messages d'erreur

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

ou

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!

signifie simplement que CMake n'a pas pu trouver votre compilateur C/CXX pour compiler un programme de test simple (L'une des premières choses que CMake essaie en détectant votre environnement de construction).

Les étapes pour trouver votre problème dépendent de l'environnement de compilation que vous voulez générer. Les tutoriels suivants sont une collection de réponses ici sur le débordement de pile et certaines de mes propres expériences avec CMake sur Microsoft Windows 7/8/10 et Ubuntu 14.04.

conditions préalables

  • vous avez installé le compilateur / IDE et il a pu compiler une fois n'importe quel autre programme (directement sans CMake)
  • Vous avez la dernière CMake version
  • vous avez des droits d'accès sur le lecteur que vous voulez CMake pour générer votre environnement de construction
  • vous avez un répertoire de construction propre (parce que CMake fait des choses de cache de la dernière tentative) par exemple comme sous-répertoire de votre arbre source

    Windows cmd.exe

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

    shell Bash

    $ rm -rf MSYS
    $ mkdir MSYS
    $ cd MSYS
    

    et assurez-vous que votre shell de commande pointe vers votre répertoire de sortie binaire nouvellement créé.

Générale choses que vous pouvez/devriez essayer

  1. est-ce que CMake peut trouver et exécuter avec n'importe quel/votre compilateur par défaut? Fonctionner sans générateur

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

    Parfait s'il a correctement déterminé le générateur à utiliser - comme ici Visual Studio 14 2015

  2. Qu'est-ce qui a vraiment échoué?

    dans le répertoire de sortie de construction précédent regardez CMakeFiles\CMakeError.log pour tout message d'erreur qui a du sens pour vous ou essayez de ouvrir | compiler le projet d'essai généré à CMakeFiles\[Version]\CompilerIdC / CompilerIdCXX directement à partir de la ligne de commande (tel que trouvé dans le journal des erreurs).

CMake ne peut pas trouver de Visual Studio

  1. essayez de sélectionner la bonne version génératrice :

    > cmake --help
    > cmake -G "Visual Studio 14 2015" ..
    
  2. si cela n'aide pas, essayez de régler le visuel Studio variables d'environnement en premier (le chemin peut varier):

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

    ou utilisez le raccourci Developer Command Prompt for VS2015 dans le Menu Démarrer de Windows sous All Programs / Visual Studio 2015 / Visual Studio Tools (merci à @Antwane pour le tuyau).

Background : CMake prend en charge toutes les versions et saveurs de Visual Studio (Express, communautaire, Professionnel, Premium, Test, Team, Enterprise, Ultimate, etc.). Pour déterminer l'emplacement du compilateur, il utilise une combinaison de recherche dans le registre (par exemple à HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\[Version];InstallDir ), de variables d'environnement système et - si aucun des autres n'a trouvé quelque chose - essayez simplement d'appeler le compilateur.

CMake can't find GCC (MinGW/MSys)

  1. vous commencez le MSYS bash shell avec msys.bat et essayez juste de directement appel gcc

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

    ici il a trouvé gcc et se plaint que je ne lui ai pas donné de paramètres pour travailler avec.

    donc ce qui suit devrait fonctionner:

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

    si GCC n'a pas été trouvé, appelez export PATH=... pour ajouter votre chemin de compilateur (voir comment définir la variable D'environnement PATH en script CMake? ) et réessayez.

  2. si cela ne fonctionne toujours pas, essayez de définir le chemin du compilateur CXX directement en l'exportant (le chemin peut varier)

    $ 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
    

    pour plus de détails, voir comment spécifier un nouveau chemin GCC pour CMake

    Note : en utilisant le générateur "MinGW Makefiles" vous devez utiliser le programme mingw32-make distribué avec MinGW

  3. Toujours pas de travail? C'est bizarre. S'il vous plaît assurez-vous que le compilateur est là et qu'il a des droits exécutables (Voir Aussi Le chapitre conditions préalables ci-dessus).

    sinon le dernier recours de CMake est de ne pas essayer une recherche de compilateur lui-même et de définir les variables internes de CMake directement par

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

    pour plus de détails voir Cmake doesn'honour-d CMAKE_CXX_COMPILER=g++ et Cmake erreur de configuration du compilateur

    ces variables peuvent aussi être définies via cmake-gui.exe sous Windows. Voir Cmake ne trouve pas de compilateur

Background : à peu près la même chose qu'avec Visual Studio. CMake supporte toutes sortes de saveurs GCC. Il recherche les variables d'environnement (CC, CXX, etc.) ou essaie tout simplement d'appeler le compilateur. De plus, il détectera tous les préfixes (quand cross-compilera ) et tentera de les ajouter à tous les binutils de la chaîne D'outils GNU compilateur.( ar , ranlib , strip , ld , nm , objdump , et objcopy ).

71
répondu Florian 2018-08-22 20:34:33

j'ai également ressenti cette erreur en travaillant avec CMake:

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

la case " avertissement "dans L'article de la bibliothèque MSDN Visual C++ in Visual Studio 2015 m'a donné l'aide dont j'avais besoin.

Visual Studio 2015 ne vient pas avec C++ installé par défaut. Ainsi, la création d'un nouveau projet C++ vous incitera à télécharger les composants C++ nécessaires.

12
répondu Natalie Cottrill 2018-08-22 20:37:49

cela m'est arrivé après que J'ai installé Visual Studio 15 2017.

le compilateur C++ pour Visual Studio 14 2015 n'était pas le problème. Il a semblé être un problème avec le SDK Windows 10.

ajouter les SDK Windows 10 à Visual Studio 14 2015 a résolu le problème pour moi.

voir la capture d'écran ci-jointe.

Enter image description here

9
répondu Wim Vanhenden 2018-08-22 20:41:56

j'ai rencontré ce problème en construisant libgit2-0.23.4. Pour moi le problème était que le compilateur C++ et les paquets connexes n'étaient pas installés avec VS2015, donc "C:\Program fichiers (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.le fichier de bat manquait et Cmake n'a pas pu trouver le compilateur.

j'ai essayé de créer manuellement un projet C++ dans L'interface graphique de Visual Studio 2015 ( C:\Program fichiers (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe ) et pendant que je créais le projet, j'ai reçu une invite pour télécharger les paquets c++ & liés.

après avoir téléchargé les paquets requis, je pouvais voir vcvarsall.bat & Cmake a réussi à trouver le compilateur et l'a exécuté avec succès avec le log suivant:

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
4
répondu Aksh1801 2016-08-14 23:40:52

j'ai eu les mêmes erreurs avec CMake. Dans mon cas, J'ai utilisé la mauvaise version de Visual Studio dans la boîte de dialogue initiale de CMake où nous devons sélectionner le compilateur de Visual Studio.

puis je l'ai changé en "Visual Studio 11 2012" et les choses ont fonctionné. (J'ai Visual Studio Ultimate 2012 version sur mon PC). En général, essayez d'entrer une ancienne version de Visual Studio dans la fenêtre de configuration initiale de CMake.

4
répondu TSac 2018-08-22 20:35:47

assurez-vous d'avoir sélectionné la bonne version de Visual Studio. C'est plus compliqué qu'il n'y paraît car Visual Studio 2015 est en fait Visual Studio 14, et Visual Studio 2012 est Visual Studio 11. J'avais mal sélectionné Visual Studio 15 qui est en fait Visual Studio 2017, lorsque j'ai fait installer 2015.

2
répondu Aryaman Gupta 2017-05-26 11:26:45

Pour Ubuntu, s'il vous plaît installer les choses suivantes:

sudo apt-get update && sudo apt-get install build-essential
2
répondu Vishnu 2018-08-22 20:40:39

aucune des solutions ici ne résout mon problème-seulement quand J'installe Windows Update pour l'exécution C universelle.

maintenant CMake fonctionne et plus de lien pend de Visual Studio.

mise à Jour pour Universal C de l'Exécution dans Windows

1
répondu Meir Gerenstadt 2018-08-22 20:39:55

Juste au cas où il permet tout comme moi à l'avenir:

j'ai eu ce problème depuis 24 heures maintenant, sur 3 machines 64 bits différentes(Win7 , Windows 8.1 VM et Win 8.1 laptop)-tout en essayant de construire WebKit avec VS 2017.

la simple question ici est que le compilateur VC++ (I. E cl.exe et ses DLLs dépendantes) n'est pas visible pour CMake. Simple. En rendant les dossiers VC++ contenant ces binaires visibles à CMake et à votre commande de travail prompt( si vous exécutez Cmake à partir d'un prompt de commande), voila! (En plus des points clés soulevés par d'autres , ci-dessus)

en tout cas, après toutes sortes de corrections-comme posté sur ces nombreux forums - j'ai découvert qu'il s'agissait simplement de s'assurer que le contenu de la variable PATH ne soit pas encombré de plusieurs chemins de BIN Visual Studio etc; et à la place, pointe vers:

a) l'emplacement de votre compilateur (C.-à-d. cl.exe pour votre version préférée de Visual Studio ), qui dans mon cas(ciblant la plate-forme 64 bits, et se développant sur un hôte 64 bits) est: C:\Program fichiers (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\bin\Hostx64\x64

b) et en outre, le dossier contenant une DLL dépendante appelé (qui cl.exe est tributaire de l'): api-ms-win-crt-runtime-l1-1-0.dll - qui sur ma machine est:

C:\Program fichiers (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Remote Debugger\x64

ces deux répertoires étant ajoutés à une variable de chemin de système simplifiée et personnalisée(travaillant sous une invite de commmand avec privilèges Admin), j'ai éliminé mon" No CMAKE_C_C_COMPILER could be found "et" No CMAKE_CXX_COMPILER could be found." erreur.

J'espère que ça aidera quelqu'un.

1
répondu GreatCentralSun 2018-09-05 20:28:28

pour moi, ce problème a disparu sur Windows quand j'ai déplacé mon projet dans un répertoire parent moins profond, i.e. vers:

C:\Users\spenc\Desktop\MyProjectDirectory

au lieu de

C:\Users\spenc\Desktop\...\MyProjectDirectory .

je pense que la source du problème était que MSBuild a une restriction de longueur de chemin de fichier à 260 caractères. Cela provoque le test de base du compilateur CMake effectue pour construire un projet appelé CompilerIdCXX.vcxproj pour échouer avec l'erreur:

C1083: Cannot open source file: 'CMakeCXXCompilerId.cpp'

parce que la longueur du chemin du fichier par exemple

C:\Users\spenc\Desktop\...\MyProjectDirectory\build\CMakeFiles\...\CMakeCXXCompilerId.cpp

dépasse la restriction MAX_PATH.

CMake conclut alors qu'il n'y a pas de compilateur CXX.

0
répondu spenceryue 2018-08-02 01:39:37

j'ai mis à jour Visual Studio 2015 mise à jour 2 à Visual Studio 2015 mise à jour 3, et il a résolu mon problème.

0
répondu TripleS 2018-08-22 20:40:21

j'ai eu le même problème avec cmake-gui ( No CMAKE_CXX_COMPILER could be found. ), alors qu'exécuter CMake à partir de la ligne de commande fonctionnait très bien. Après avoir ajouté manuellement les entrées

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin

C:\Program Files (x86)\Microsoft Visual Studio17\Community\MSBuild.0\Bin

à la variable D'environnement PATH ça a marché pour moi.

0
répondu helmken 2018-08-22 20:43:01

Cela fonctionne pour moi, dans Ubuntu 17.10 (Savant Aardvark):

apt-get update
apt-get install build-essential
0
répondu purval_patel 2018-08-22 20:44:39

vous pouvez également vous assurer que vous êtes l'utilisateur sudo et que vous avez accès en lecture/écriture sur le répertoire que vous travaillez. J'ai eu un problème similaire sur OS X, et je l'ai réparé juste en entrant en mode sudo.

0
répondu daniel rubambura 2018-08-22 20:45:41

pour moi, il a fonctionné d'utiliser L'invite de commande Developer qui vient avec Visual Studio et puis juste cd à your/jcef/dir et exécuter cmake -G "Visual Studio 14 Win64" ..

0
répondu Marc Dirven 2018-08-22 20:46:00