Compilateur C identification est inconnue malgré la mise CC et CXX variables
Je suis l'aide de la commande:
cmake CC="C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\cl.exe"
CXX="C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\cl.exe" -G "Visual Studio 12
Win64" -DBOOST_ROOT="c:\local\boost_1_56_0" -DBOOST_LIBRARYDIR="c:\local\boost_1_56_0\lib64-
msvc-12.0" ..
Il dit:
The C compiler identification is unknown
et
The CXX compiler identification is unknown
Comment est-il possible lorsque j'ai mis ces variables là?
MODIFIER: fichier journal des Erreurs:
Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler:
Build flags:
Id flags:
The output was:
1
Microsoft (R) Build Engine version 12.0.30723.0
[Microsoft .NET Framework, version 4.0.30319.18444]
Copyright (C) Microsoft Corporation. All rights reserved.
Build started 21-09-2014 20:17:49.
Project "D:\foo\build\CMakeFiles.0.2\CompilerIdC\CompilerIdC.vcxproj" on node 1 (default targets).
PrepareForBuild:
Creating directory "Debug\".
Creating directory "Debug\CompilerIdC.tlog\".
InitializeBuildStatus:
Creating "Debug\CompilerIdC.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
ClCompile:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64\CL.exe /c /nologo /W0 /WX- /Od /D _MBCS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Debug\\" /Fd"Debug\vc120.pdb" /Gd /TC /errorReport:queue CMakeCCompilerId.c
CMakeCCompilerId.c
Link:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64\link.exe /ERRORREPORT:QUEUE /OUT:".\CompilerIdC.exe" /INCREMENTAL:NO /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /PDB:".\CompilerIdC.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:".\CompilerIdC.lib" /MACHINE:X64 Debug\CMakeCCompilerId.obj
LINK : fatal error LNK1181: cannot open input file 'gdi32.lib' [D:\foo\build\CMakeFiles.0.2\CompilerIdC\CompilerIdC.vcxproj]
Done Building Project "D:\foo\build\CMakeFiles.0.2\CompilerIdC\CompilerIdC.vcxproj" (default targets) -- FAILED.
Build FAILED.
"D:\foo\build\CMakeFiles.0.2\CompilerIdC\CompilerIdC.vcxproj" (default target) (1) ->
(Link target) ->
LINK : fatal error LNK1181: cannot open input file 'gdi32.lib' [D:\foo\build\CMakeFiles.0.2\CompilerIdC\CompilerIdC.vcxproj]
0 Warning(s)
1 Error(s)
Time Elapsed 00:00:00.47
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler:
Build flags:
Id flags:
The output was:
1
Microsoft (R) Build Engine version 12.0.30723.0
[Microsoft .NET Framework, version 4.0.30319.18444]
Copyright (C) Microsoft Corporation. All rights reserved.
Build started 21-09-2014 20:17:50.
Project "D:\foo\build\CMakeFiles.0.2\CompilerIdCXX\CompilerIdCXX.vcxproj" on node 1 (default targets).
PrepareForBuild:
Creating directory "Debug\".
Creating directory "Debug\CompilerIdCXX.tlog\".
InitializeBuildStatus:
Creating "Debug\CompilerIdCXX.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
ClCompile:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64\CL.exe /c /nologo /W0 /WX- /Od /D _MBCS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Debug\\" /Fd"Debug\vc120.pdb" /Gd /TP /errorReport:queue CMakeCXXCompilerId.cpp
CMakeCXXCompilerId.cpp
Link:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64\link.exe /ERRORREPORT:QUEUE /OUT:".\CompilerIdCXX.exe" /INCREMENTAL:NO /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /PDB:".\CompilerIdCXX.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:".\CompilerIdCXX.lib" /MACHINE:X64 Debug\CMakeCXXCompilerId.obj
LINK : fatal error LNK1181: cannot open input file 'gdi32.lib' [D:\foo\build\CMakeFiles.0.2\CompilerIdCXX\CompilerIdCXX.vcxproj]
Done Building Project "D:\foo\build\CMakeFiles.0.2\CompilerIdCXX\CompilerIdCXX.vcxproj" (default targets) -- FAILED.
Build FAILED.
"D:\foo\build\CMakeFiles.0.2\CompilerIdCXX\CompilerIdCXX.vcxproj" (default target) (1) ->
(Link target) ->
LINK : fatal error LNK1181: cannot open input file 'gdi32.lib' [D:\foo\build\CMakeFiles.0.2\CompilerIdCXX\CompilerIdCXX.vcxproj]
0 Warning(s)
1 Error(s)
Time Elapsed 00:00:00.50
OriginalL'auteur batman | 2014-09-19
Vous devez vous connecter pour publier un commentaire.
Le compilateur peut être sélectionnés à l'aide de la
CC
etCXX
variables, mais c'est beaucoup plus compliqué que d'utiliser le-G
(générateur) paramètre. Pour l'un, les barres obliques dans le chemin d'accès doit être le style Unix (/
) et ils ne prennent effet qu'après la première fois CMake configuration est exécuté si le cache est effacé.Pour une liste de générateur options incluent le
--help
optionLes chemins d'accès à la bibliothèque Boost devez également utiliser Unix style des barres obliques (
/
). La plupart des commandes seront convertir Windows chemins, mais lors du passage dans les définitions à la ligne de commande que vous aurez envie de toujours utiliser le style Unix chemins.Votre commande de modification aux éléments suivants:
Vous voudrez également vous assurer que votre variable d'environnement PATH est configuré correctement pour Visual Studio et x64. Cela peut être fait facilement par l'ouverture d'un VS2013 x64 Outils Natifs Invite de Commande en utilisant la commande ci-dessous:
En outre, vous devez vous assurer que vous êtes à l'effacement de l'cmake cache avant d'essayer. La façon la plus simple de le faire est de supprimer votre cmake dossier de création, mais vous pouvez également utiliser le CMake-gui pour effacer le cache.
/
sur Windows?C'est juste le format qui CMake a choisi d'utiliser. J'ai mis à jour ma réponse pour ajouter un peu plus de détails.
Je me suis trompé sur le générateur utilisé, et ont modifié ma réponse. Note ajoutée à la fin sur la configuration de votre variable PATH.
Tel est mon générateur argument correct ou pas? Merci!
Alors je viens de faire les barres obliques de mal. J'ai changé ma commande de votre commande exactement, mais j'obtiens toujours la même erreur. J'ai vidé le
build/
le répertoire. J'ai couru levcvarsall.bat
script comme vous l'avez dit, mais depuis que le mien n'est pas uneamd
processeur, j'ai aussi essayéx64
au lieu deamd64
(c'est à dire, j'ai essayé avec les deux individuellement) . Ni l'un ni travaillé. Que pensez-vous pourrait être le problème? Je reçois la même erreur? Je vais modifier la question avec le fichier de log, si vous pouvez s'il vous plaît prendre un coup d'oeil.OriginalL'auteur jmstoker