Je viens d'installer Windows 10 Créateurs de mise à Jour (version 10.0.15063).
J'ai plusieurs versions de Visual Studio est installé (2012, 2013, 2015 et 2017). J'ai installé VS 2017 seulement il y a quelques semaines.
Problème
CMake (version 3.8.1) ne trouve plus le compilateur C/C++ lors de l'exécution à l'intérieur d'un "VS2015 x64 Natif Invite de Commande" (il ne fonctionne correctement lorsqu'il est exécuté à l'intérieur d'un VS 2017 invite de commande).
La Reproduction
Le contenu de CMakeLists.txt
:
project (test)
add_executable (test test.cpp)
(Le contenu de test.cpp
n'est pas pertinent.)
CMake invocation, dans un VS2015 x64 Natif de l'Invite de Commande:
> mkdir build
> cd build
> cmake -G "Visual Studio 14 2015 Win64" ..
CMake de sortie:
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:1 (project):
No CMAKE_C_COMPILER could be found.
CMake Error at CMakeLists.txt:1 (project):
No CMAKE_CXX_COMPILER could be found.
-- Configuring incomplete, errors occurred!
See also "D:/dev/cmaketest/build/CMakeFiles/CMakeOutput.log".
See also "D:/dev/cmaketest/build/CMakeFiles/CMakeError.log".
L'analyse
La raison de l'échec est évident lorsque l'on regarde CMakeFiles/CMakeError.log
:
ClCompile:
C:\Program Files (x86)\Microsoft Visual Studio 14.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 /Zc:inline /Fo"Debug\\" /Fd"Debug\vc140.pdb" /Gd /TC /errorReport:queue CMakeCCompilerId.c
CMakeCCompilerId.c
Link:
C:\Program Files (x86)\Microsoft Visual Studio 14.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 LNK1158: cannot run 'rc.exe' [D:\dev\cmaketest\build\CMakeFiles\3.8.1\CompilerIdC\CompilerIdC.vcxproj]
rc.exe
(Compilateur de ressources) n'est pas trouvé. En effet, dans le même VS 2015 invite de commande:
> where rc.exe
INFO: Could not find files for the given pattern(s).
Alors qu'il est constaté dans un VS 2013 invite de commande:
> where rc.exe
C:\Program Files (x86)\Windows Kits\8.1\bin\x64\rc.exe
C:\Program Files (x86)\Windows Kits\8.1\bin\x86\rc.exe
et VS 2017 invite de commande:
> where rc.exe
C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x64\rc.exe
Vérifier le contenu de l' PATH
variables d'environnement dans les différents VS invite de commande:
-
À l'intérieur d'un VS 2013 invite de commande,
PATH
contientC:\Program Files (x86)\Windows Kits\8.1\bin\x64
-
À l'intérieur d'un VS 2017 invite de commande,
PATH
contientC:\Program Files (x86)\Windows Kits\10\bin\x64 C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x64
-
Mais à l'intérieur d'un VS 2015 invite de commande,
PATH
ne contientC:\Program Files (x86)\Windows Kits\10\bin\x64
qui ne contient pas d'
rc.exe
.
Questions
Est-ce un problème connu ou est-il spécifique à mon système?
Quoi de Windows 10 Créateurs de mise à Jour, éventuellement, installer, désinstaller ou modifier dans le système (peut-être quelque chose lié à Windows Sdk) qui pourrait déclencher ce problème?
Ce qui est un moyen propre à résoudre ce problème?
Edit: Installé VS 2017 composants: