J'essaie de créer une solution Visual Studio avec CMake pour compiler la dernière version d'Aseprite et CMake ne cesse de me donner:
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:
c++
visual-studio
gcc
cmake
visual-studio-2015
Caio Fontes
la source
la source
cmake .. -G "Visual Studio 14 2015"
oucmake .. -G "MSYS Makefiles"
(si celagcc
signifieMinGW
). Et j'ai beaucoup vu ces questions (comme ici , ici ou ici ) et je pense qu'il nous manque une réponse combinée / tutorielle sur SO.Réponses:
Ces messages d'erreur
ou
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 lors de la détection de votre environnement de construction).
Les étapes de recherche de votre problème dépendent de l'environnement de génération que vous souhaitez générer. Les didacticiels suivants sont une collection de réponses ici sur Stack Overflow et certaines de mes propres expériences avec CMake sur Microsoft Windows 7/8/10 et Ubuntu 14.04.
Conditions préalables
Vous avez un répertoire de construction propre (car CMake met en cache les choses du dernier essai), par exemple en tant que sous-répertoire de votre arborescence source
Windows cmd.exe
Coque Bash
et assurez-vous que votre shell de commande pointe vers votre répertoire de sortie binaire nouvellement créé.
Choses générales que vous pouvez / devriez essayer
CMake peut-il trouver et exécuter avec n'importe quel / votre compilateur par défaut? Courir sans donner de générateur
Parfait s'il a correctement déterminé le générateur à utiliser - comme ici
Visual Studio 14 2015
Qu'est-ce qui a réellement échoué?
Dans le répertoire de sortie de la version précédente, recherchez
CMakeFiles\CMakeError.log
tout message d'erreur pertinent pour vous ou essayez d'ouvrir / compiler le projet de test généré àCMakeFiles\[Version]\CompilerIdC
|CompilerIdCXX
directement à partir de la ligne de commande (comme indiqué dans le journal des erreurs).CMake ne trouve pas Visual Studio
Essayez de sélectionner la bonne version du générateur :
Si cela ne résout pas le problème, essayez d'abord de définir les variables d'environnement Visual Studio (le chemin peut varier):
ou utilisez le
Developer Command Prompt for VS2015
raccourci dans votre menu Démarrer de Windows sousAll Programs
/Visual Studio 2015
/Visual Studio Tools
(merci à @Antwane pour l'indication).Contexte : CMake prend en charge toutes les versions et versions de Visual Studio (Express, Community, Professional, 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
), les variables d'environnement système et - si aucun des autres n'a trouvé quelque chose - il essaie simplement d'appeler le compilateur.CMake ne trouve pas GCC (MinGW / MSys)
Vous démarrez le
bash
shell MSys avecmsys.bat
et essayez simplement d'appeler directementgcc
Ici, il a trouvé
gcc
et se plaint que je ne lui ai donné aucun paramètre avec lequel travailler.Donc, ce qui suit devrait fonctionner:
Si GCC n'a pas été trouvé, appelez
export PATH=...
pour ajouter le chemin de votre compilateur (voir Comment définir la variable d'environnement PATH dans le script CMake? ) Et réessayez.Si cela ne fonctionne toujours pas, essayez de définir le
CXX
chemin du compilateur directement en l'exportant (le chemin peut varier)Pour plus de détails, voir Comment spécifier un nouveau chemin GCC pour CMake
Remarque : Lorsque vous utilisez le générateur "MinGW Makefiles", vous devez utiliser le
mingw32-make
programme distribué avec MinGWNe fonctionne toujours pas? C'est bizarre. Veuillez vous assurer que le compilateur est là et qu'il a des droits exécutables (voir aussi le chapitre sur les conditions préalables ci-dessus).
Sinon, le dernier recours de CMake est de ne pas essayer de recherche de compilateur lui-même et de définir les variables internes de CMake directement en
Pour plus de détails, voir Cmake ne respecte pas -D CMAKE_CXX_COMPILER = g ++ et le compilateur de paramétrage d'erreur Cmake
Alternativement, ces variables peuvent également être définies via
cmake-gui.exe
Windows. Voir Cmake ne trouve pas le compilateurContexte : identique à celui de Visual Studio. CMake prend en charge toutes sortes de saveurs GCC. Il recherche les variables d'environnement (CC, CXX, etc.) ou essaie simplement d'appeler le compilateur. En outre , il détecte tous les préfixes (lors de la compilation croisée ) et tente d'ajouter à tous les binutils du compilateur GNU toolchain (
ar
,ranlib
,strip
,ld
,nm
,objdump
etobjcopy
).la source
Pour Ubuntu, veuillez installer les éléments ci-dessous:
la source
Cela m'est arrivé après avoir installé Visual Studio 15 2017.
Le compilateur C ++ pour Visual Studio 14 2015 n'était pas le problème. Cela semblait être un problème avec le SDK Windows 10.
L'ajout des SDK Windows 10 à Visual Studio 14 2015 a résolu le problème pour moi.
Voir la capture d'écran ci-jointe.
la source
J'ai également rencontré cette erreur en travaillant avec CMake:
La zone `` avertissement '' dans l'article de la bibliothèque MSDN Visual C ++ dans Visual Studio 2015 m'a donné l'aide dont j'avais besoin.
Visual Studio 2015 n'est pas fourni avec C ++ installé par défaut. Ainsi, la création d'un nouveau projet C ++ vous invitera à télécharger les composants C ++ nécessaires.
la source
Cela fonctionne pour moi dans Ubuntu 17.10 (Artful Aardvark):
la source
J'ai rencontré ce problème lors de la construction de libgit2-0.23.4. Pour moi , le problème était que les paquets de compilateur et connexes C ne sont pas installés avec VS2015, donc « C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ vcvarsall.bat » le fichier était absent 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 Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ devenv.exe ) et lors de la création du projet, j'ai reçu une invite pour télécharger le C ++ & packages associés.
Après avoir téléchargé les packages requis, j'ai pu voir vcvarsall.bat et Cmake a pu trouver le compilateur et exécuté avec succès avec le journal suivant:
la source
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 CMake initiale où nous devons sélectionner le compilateur Visual Studio.
Ensuite, je l'ai changé en "Visual Studio 11 2012" et les choses ont fonctionné. (J'ai la version Visual Studio Ultimate 2012 sur mon PC). En général, essayez de saisir une ancienne version de la version de Visual Studio dans la boîte de dialogue de configuration initiale de CMake.
la source
Pour moi, ce problème a disparu sous Windows lorsque j'ai déplacé mon projet vers un répertoire parent moins profond, c'est-à-dire 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 que CMake effectue pour générer un projet appelé
CompilerIdCXX.vcxproj
à é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.
la source
Assurez-vous que vous avez sélectionné la version correcte de Visual Studio. C'est plus compliqué qu'il n'y paraît, car Visual Studio 2015 est en fait Visual Studio 14, et de même Visual Studio 2012 est Visual Studio 11. J'avais mal sélectionné Visual Studio 15 qui est en fait Visual Studio 2017, lorsque 2015 était installé.
la source
Aucune des solutions ici ne résout mon problème - uniquement lorsque j'installe Windows Update pour le runtime C universel.
Maintenant CMake fonctionne et plus aucun lien ne se bloque à partir de Visual Studio.
Mise à jour pour Universal C Runtime sous Windows
la source
Vous pouvez également vous assurer que vous êtes l'utilisateur sudo et que vous avez un accès LECTURE / ÉCRITURE sur le répertoire sur lequel vous travaillez. J'ai eu un problème similaire sur OS X, et je l'ai résolu simplement en entrant en mode sudo.
la source
Juste au cas où cela aiderait quelqu'un comme moi à l'avenir:
J'ai ce problème depuis 24 heures maintenant, sur 3 machines 64 bits différentes (Win7, VM Windows 8.1 et ordinateur portable WIn 8.1) - tout en essayant de créer WebKit avec VS 2017.
Le problème simple ici est que le compilateur VC ++ (c'est-à-dire cl.exe et ses DLL dépendantes) n'est pas visible par CMake. Facile. En rendant les dossiers VC ++ contenant ces binaires visibles par CMake et votre invite de commande de travail (si vous exécutez Cmake à partir d'une invite de commande), voila! (En plus des points clés soulevés par d'autres, ci-dessus)
Quoi qu'il en soit, après toutes sortes de correctifs - comme indiqué 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 BIN Visual Studio, etc. et à la place, indique:
a) l'emplacement de votre compilateur (c'est-à-dire cl.exe pour votre version préférée de Visual Studio), qui dans mon cas (ciblant une plate-forme 64 bits et se développant sur un hôte 64 bits) est: C: \ Program Files (x86 ) \ Microsoft Visual Studio \ 2017 \ Community \ VC \ Tools \ MSVC \ 14.15.26726 \ bin \ Hostx64 \ x64
b) et en plus, le dossier contenant une DLL dépendante appelée (dont cl.exe dépend): api-ms-win-crt-runtime-l1-1-0.dll - qui sur ma machine est:
C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ Common7 \ IDE \ Remote Debugger \ x64
Ces deux répertoires ajoutés à une variable de chemin système simplifié et CUSTOM (fonctionnant sous une invite de commande à privilèges Admin), ont éliminé mon "Aucun CMAKE_C_COMPILER n'a pu être trouvé" et "Aucun CMAKE_CXX_COMPILER n'a pu être trouvé." les erreurs.
J'espère que ça aide quelqu'un.
la source
J'obtiens exactement l'erreur signalée si ccache est activé, lors de l'utilisation du générateur Xcode de CMake . La désactivation de ccache a résolu le problème pour moi. Ci-dessous, je présente un correctif / vérification qui fonctionne pour MacOS, mais devrait fonctionner de la même manière sur d'autres plates-formes.
Apparemment, il est possible d'utiliser le générateur Xcode de CMake (et d'autres) également en combinaison avec ccache, comme décrit ici . Mais je ne l'ai jamais essayé moi-même.
la source
J'ai mis à jour la mise à jour 2 de Visual Studio 2015 vers la mise à jour 3 de Visual Studio 2015 et cela a résolu mon problème.
la source
J'ai eu le même problème avec cmake-gui (
No CMAKE_CXX_COMPILER could be found.
), alors que l'exécution de CMake à partir de la ligne de commande fonctionnait bien. Après avoir ajouté manuellement les entréesC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin
à la variable d'environnement PATH cela a fonctionné pour moi.
la source
Pour moi, cela a fonctionné d'utiliser l'invite de commande du développeur fournie avec Visual Studio, puis simplement
cd
de l'your/jcef/dir
exécutercmake -G "Visual Studio 14 Win64" ..
la source
J'ai eu le même problème.
J'essayais d'installer dlib sur ma machine et cela m'a donné cette erreur. Le tutoriel mentionné dans la question conduit au téléchargement de Visual Studio 2017. J'ai résolu ce problème en désinstallant VS 2017 et en installant VS 2015
On peut installer VS 2015 via ce thread stackoverflow: Comment télécharger Visual Studio Community Edition 2015 (pas 2017)
la source
Je sais que cette question concerne Visual Studio 2015. J'ai rencontré ce problème avec Visual Studio 2017. Lors d'une recherche sur google, j'ai atterri sur cette page. Après avoir regardé les 2,3 premières réponses, j'ai réalisé que c'était le problème avec l'installation de vc ++. L'installation de la charge de travail «Développement de bureau avec C ++» a résolu le problème.
la source
Regardez dans le Cmakelists.txt si vous trouvez ARM dont vous avez besoin pour installer C ++ pour ARM
Ce sont ces packages:
Plateforme Windows universelle C ++ pour ARM64 "Non requise"
Compilateurs et bibliothèques Visual C ++ pour ARM «non requis»
Compilateurs et bibliothèques Visual C ++ pour ARM64 "Très probablement requis"
Puis les problèmes
Aucun CMAKE_C_COMPILER n'a pu être trouvé.
Aucun CMAKE_CXX_COMPILER n'a pu être trouvé.
Peut disparaître à moins que vous ne spécifiiez un compilateur c comme clang, et peut-être que l'installation de clang fonctionnera en une autre faveur.
Vous pouvez avec l'option remove dans cmakelists.txt à la fois avec # avant enable_language si vous ne compilez pas pour ARM.
la source