79 votes

rc.exe n'est plus trouvé dans l'invite de commande VS 2015

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 contient

    C:\Program Files (x86)\Windows Kits\8.1\bin\x64
    
  • À l'intérieur d'un VS 2017 invite de commande, PATH contient

    C:\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 contient

    C:\Program Files (x86)\Windows Kits\10\bin\x64
    

    qui ne contient pas d' rc.exe.

Questions

  1. Est-ce un problème connu ou est-il spécifique à mon système?

  2. 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?

  3. Ce qui est un moyen propre à résoudre ce problème?

Edit: Installé VS 2017 composants:

VS 2017 components installed

115voto

RemAngel Points 11

Passé un certain temps à regarder cette sur trois machines avec Win10 Créateurs de l'Édition et de VS2010, VS2013, VS2015 et VS2017 installé, où il travaille sur les deux machines et échoue sur le troisième. Tous avaient VS2015 mise à Jour 3 et tous devraient avoir été installé avec les mêmes options.

Exécuter le fichier de commandes suivant

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\vcvars64.bat

devrait configuration de l'environnement approprié pour VS2015 x64 environnement. Cela devrait ajouter

C:\Program Files (x86)\Windows Kits\10\bin\x64

le CHEMIN d'accès. C'est là rc.exe devrait être. Cependant sur ma machine en panne rc.exe manquait à partir d'ici, mais il n'existe pas dans

C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x64

Je suis de retour et le sentiment que c'était un problème d'installation, je re-couru à l'VS2015 mise à Jour 3 installation et l'a raconté à ajouter

Windows et Développement Web -> Universal Windows de Développement d'applications Outils -> Outils (1.4.1) et Windows 10 SDK (10.0.14393)

cela a provoqué rc.exe et les fichiers liés à apparaître dans

C:\Program Files (x86)\Windows Kits\10\bin\x64

De course rc -v sur

C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x64\rc.exe

et

C:\Program Files (x86)\Windows Kits\10\bin\x64\rc.exe

a donné le même numéro de version 10.0.10011.16384

Je ne sais pas pourquoi rc.exe était absent de l'installation d'origine, mais la ré-exécution de l'installation, et en ajoutant les autres SDK fixe pour moi. Il ressemble

C:\Program Files (x86)\Windows Kits\10\bin\x64\rc.exe

doit être la valeur par défaut rc.exe mais ce n'était pas de l'installation par une précédente installation.

20voto

Falcon Points 190

Ce n'est certainement pas juste toi. J'ai installé VS2017 hier et cela semble avoir produit le même problème de mon côté. Je n'ai pas de bonne solution (cela devrait être signalé à Microsoft comme un bug), mais j'ai une solution de contournement.

J'ai pu copier rc.exe et rc.dll à partir de

 C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x64 
to
C:\Program Files (x86)\Windows Kits\10\bin\x86
 

Cela a résolu le problème pour moi. Mon impression est que c'est une clé de registre en train d'être écrasée mais je n'y ai pas suffisamment exploré pour en être sûr.

8voto

Problème rencontré avec Windows 10 15063.608 (SDK Windows 10.0.15063.0). La solution qui fonctionne pour moi est la création de liens physiques pour les dossiers binaires du kit Windows 10 x64 et x86, comme indiqué ci-dessous (utilisez l'invite de commande avec les droits d'administrateur):

 mklink /J "C:\Program Files (x86)\Windows Kits\10\bin\x86" "C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x86"

mklink /J "C:\Program Files (x86)\Windows Kits\10\bin\x64" "C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x64"
 

(Avant d'exécuter ces commandes, il suffit de renommer les dossiers existants Windows Kits\10\bin\x64 et Windows Kits\10\bin\x86 - il semble qu'ils ne soient pas utilisés.

4voto

genpfault Points 28836

Pour quelque raison que ce soit intégré dans les Outils (1.4.1) et Windows 10 SDK (10.0.14393) programme d'installation n'a pas fonctionné pour moi:

  1. C:\Program Files (x86)\Windows Kits\10\bin\x86 suis renseigné à la mi-installer (avec succès!)
  2. ...puis de densité (peine!)
  3. Et finalement, le programme d'installation d'erreur renvoyé -2147023293/0x80048646.

Le "Windows 10 SDK (ver. 10.0.14393.795)" programme d'installation du kit de développement logiciel Windows ainsi qu'un émulateur archive fonctionné bien: C:\Program Files (x86)\Windows Kits\10\bin\x86 devient et reste remplie, y compris rc.exe.

Windows 7 x64, Visual Studio Professional 2015 mise à Jour 3.

2voto

yoursort Points 481

Spécifier CMAKE_SYSTEM_VERSION=8.1 résolu le problème pour moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X