rc.exe nicht mehr in VS 2015 Eingabeaufforderung
Ich gerade installiert Windows 10 Schöpfer-Update (version 10.0.15063).
Ich habe mehrere Versionen von Visual Studio installiert (2012, 2013, 2015 und 2017). Ich installierte VS 2017 nur ein paar Wochen.
Problem
CMake (version 3.8.1) nicht mehr findet die C/C++ - compiler, der bei Ausführung innerhalb eines "VS2015 x64 Native Command Prompt" (es hat ordnungsgemäß beim laufen in einem VS 2017 Eingabeaufforderung).
Reproduktion
Inhalt CMakeLists.txt
:
project (test)
add_executable (test test.cpp)
(Inhalt test.cpp
ist irrelevant.)
CMake-Aufruf, in VS2015 x64 Native Command Prompt:
> mkdir build
> cd build
> cmake -G "Visual Studio 14 2015 Win64" ..
CMake-Ausgang:
-- 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".
Analyse
Den Grund des Fehlers ist klar, wenn man bei 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
(Resource Compiler) ist nicht gefunden. In der Tat, in der gleichen VS 2015 Eingabeaufforderung:
> where rc.exe
INFO: Could not find files for the given pattern(s).
Während es ist gefunden in VS 2013 Eingabeaufforderung:
> 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
- und ein VS-2017 Eingabeaufforderung:
> where rc.exe
C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x64\rc.exe
Überprüfung des Inhalts des PATH
Umgebungsvariablen in verschiedenen VS-Eingabeaufforderung:
-
Innerhalb einer VS 2013 Eingabeaufforderung
PATH
enthältC:\Program Files (x86)\Windows Kits\8.1\bin\x64
-
Innerhalb einer VS 2017 Eingabeaufforderung
PATH
enthältC:\Program Files (x86)\Windows Kits\10\bin\x64 C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x64
-
Aber in einem VS 2015 Eingabeaufforderung
PATH
enthält nurC:\Program Files (x86)\Windows Kits\10\bin\x64
die nicht enthalten
rc.exe
.
Fragen
-
Ist das ein bekanntes Problem oder ist es spezifisch für mein system?
-
Was könnte Windows 10 Schöpfer Update ggf. installieren, deinstallieren oder ändern im system (vielleicht etwas im Zusammenhang mit Windows-SDKs) auslösen würde, dass Sie dieses problem?
-
Was ist eine saubere Art und Weise diese zu lösen?
Edit: Installiert VS 2017 Komponenten:
- Ich hab einfach auf das gleiche problem mit fast identischen OS und Visual Studio-setup wie du. Ich bin versucht zu bauen Wireshark (64-bit).bl Seltsame Sache ist die ich gebaut habe es auf zwei Rechnern zu Hause, ohne auf dieses problem. Jetzt versuchte, über meine Arbeit Maschine und ich habe hit das problem. Ich manuell Hinzugefügt C:\Program Files (x86)\Windows Kits\10\bin\x64 C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x64 auf dem WEG, aber das führte dann zu 'winver ein.h' nicht gefunden wird.
- Was update-level von VS2015 verwenden Sie? Auf meinem Rechner zu Hause, mit dem VS2015 Update 3, rc.exe ist auf dem Weg in
C:\Program Files (x86)\Windows Kits\10\bin\x64\rc.EXE
. - Ich bin mit Visual Studio Entreprise 2015 Version 14.0.25425.01 Update 3.
- FÜNF HUNDERT BOUNTY
- Eine grundlegende Weg, um dieses problem aufweisen: (1) kaufen eine neue, saubere Windows10 Maschine (Ende 2018). (2) Installieren VS2017. (3) Ihre Meinung Ändern, deinstallieren (irgendwie) VS2017 und installieren VS2015. Dies scheint grundsätzlich verursachen die 'windows cmake-Krise" zu weisen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verbrachte einige Zeit Blick auf diese drei Maschinen mit Win10 Creators Edition und VS2010, VS2013, VS2015 und VS2017 installiert, wo es funktioniert auf zwei Rechnern und nicht auf Dritte. Alle hatten VS2015 Update 3 und es sollte alles installiert mit den gleichen Optionen.
Ausführen der folgenden batch-Datei
sollte das setup die richtige Umgebung für VS2015 x64-Umgebung. Dies sollte
auf den WEG. Dies ist, wo rc.exe werden sollte. Aber auf meine fehlerhafte Maschine rc.exe war, fehlt hier, aber es existierte in
Ging ich zurück und ein Gefühl wie dieses war ein setup-Problem, das ich re-lief die VS2015 Update 3 setup und gesagt, es hinzufügen
Windows-und Web-Entwicklung -> Universal-Windows-App-Entwicklung-Tools -> Tools (1.4.1) und Windows 10 SDK (10.0.14393)
diese verursacht rc.exe und die zugehörigen Dateien erscheinen in
Läuft rc -v auf
und
gab die gleiche Versionsnummer 10.0.10011.16384
Nicht sicher, warum rc.exe fehlte in der ursprünglichen installieren, aber wieder läuft die Installation und das hinzufügen der anderen SDK behoben es für mich. Es sieht aus wie
sollte der Standard sein rc.exe aber es war nicht das setup von einer vorherigen Installation.
vcvarsall x64
unter C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC) fügt den gewünschten Pfad und der Neuinstallation legt die exe-Datei in diesem Pfad, die alle diese arbeiten nur für Entwickler Befehlszeile; die VS2015 IDE noch nicht finden können rc.exe und spuckte den selben Fehler. Wir könnten also genauso gut, fügen Sie den Pfad zeigen, auf die rc.exe egal, wo Sie ist, in die PATH-Umgebungsvariable, und wir sind alle gesetzt. Aber ich will danke diese Antwort 'Ursache, zumindest lässt es mich wissen, wo rc.exe ist.Es ist definitiv nicht nur für Sie. Ich installierte VS2017 gestern und so tun zu haben scheint, produziert das gleiche problem auf meinem Ende. Ich habe nicht eine gute Lösung (dies sollte gemeldet werden, die von Microsoft als ein Fehler), aber ich habe einen hacky Abhilfe.
War ich in der Lage zu kopieren rc.exe und rc.dll von
Dass das Problem gelöst für mich. Meine Vermutung ist, dass es einen registry-Schlüssel überschrieben wird, aber ich habe nicht gegraben in es genug, um sicher zu sein.
C:\Program Files (x86)\Windows Kits\10\bin\x86
, und nichtC:\Program Files (x86)\Windows Kits\10\bin\x64
?Traf das gleiche problem mit Windows 10 15063.608 (Windows SDK 10.0.15063.0). Die Lösung für mich ist die hard links anlegen für Windows 10 kit-Binärdateien x64 und x86 Ordner, wie unten dargestellt (verwenden Sie die Eingabeaufforderung mit admin-rechten):
(vor dem ausführen dieser Befehle umbenennen bestehender
Windows Kits\10\bin\x64
undWindows Kits\10\bin\x86
Ordner - es sieht aus wie Sie nicht in Gebrauch sind.Welchen Gründen auch immer die gebaut-in Tools (1.4.1) und Windows 10 SDK (10.0.14393) installer hat bei mir nicht funktioniert:
C:\Program Files (x86)\Windows Kits\10\bin\x86
bekam besiedelten Mitte-installieren (Erfolg!)-2147023293
/0x80048646
.Den "Windows 10 SDK (ver. 10.0.14393.795)" - installer aus der Windows SDK und emulator-Archiv gearbeitet, aber:
C:\Program Files (x86)\Windows Kits\10\bin\x86
bekommt und bleibt aufgefüllt, einschließlichrc.exe
.Windows 7 x64, Visual Studio Professional 2015 Update 3.
Angabe
CMAKE_SYSTEM_VERSION=8.1
das problem bei mir gelöst.Ähnliches problem mit VS2017 Gemeinschaft 15.4.5 mit Windows Sdk-version 10.0.16299.0, aber nur für builds über TeamCity; baut aus in VS gut funktioniert und so auch Gebäude mit MSBuild beim Start von VS developer-Eingabeaufforderung. Damit dies nicht genau beantworten die OP ' s Frage, aber ist so ähnlich und dies ist eine der ersten Suche entspricht, so werde ich Sie hier hinzufügen.
Eine Lösung gefunden, die funktioniert nicht erfordern das ändern der installation in irgendeiner Weise (nicht verlinken/kopieren, damit weniger Fehler-anfällig und leicht zu automatisieren):
legen Sie die
VisualStudioVersion
Umgebungsvariable15.0
.Könnten Sie tun dies weltweit mit der standard-Windows-gui dafür (Beispiel für windows 10 hier), aber ich würde eher stark davon abraten, da es stören könnte mit anderen Versionen von VS, darüber hinaus ist es nicht eine änderung, die leicht automatisiert noch überprüft in Ihrem build-code und damit schwieriger zu reproduzieren omn verschiedenen Maschinen. Eine bessere alternative ist, setzen Sie diese in die Kommandozeile, wo der build läuft (cmd:
set VisualStudioVersion=15.0
PS:$env:VisualStudioVersion = '15.0'
im TeamCity: hinzufügenenv.VisualStudioVersion
Parameter). Eine andere alternative ist, an dieses Verzeichnis zu MSBuild als Eigenschaft (pass/p:VisualStudioVersion=15.0
oder in teamCity addsystem.VisualStudioVersion
).Laufen VS2015 Eingabeaufforderung:
Scheint es, dass vs2017 Standard-Installationen der neuesten SDK, und Überschreiben die alte Version.
Für jene, die sich fest auf diese, ein bestimmtes problem festgelegt ist:
Wenn Sie die oben
es scheint, dass es ein bug ist oder andere Verhalten mit der gesamten suite von Windows/VS Installateure.
Gibt es im Grunde scheint es vier Probleme MSFT zu beheben (a) manchmal ist es einfach nicht installieren rc.exe (b) es nicht installieren rc.exe wenn Sie "nur" Fragen, für die c++ Sachen, die Sie stellen müssen für alles (c) die deinstallieren-installieren-pipeline scheint alles Durcheinander auf verschiedene Weise (d), auch wenn es zufällig installiert rc.exe für Sie, es vergisst oder fouls-auf den Weg.
:/
Lange mühsame Geschichte kurz, Lösungen gehören offenbar eine oder mehrere von
. . . . . .
[*] es kann auch kommen mit VS 2017, und nicht zu vergessen, VS 2017 kann dummerweise installiert bekommen mit etwas anderem, Einheit usw.
Öffnen "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\VsDevCmd.Fledermaus" in einem text-editor im administrator-Modus und ändern
die Linie
@if not "%WindowsSdkDir%" == "" @set PATH=%WindowsSdkDir%bin\x86;%PATH%
zu
@if not "%WindowsSdkDir%" == "" @set PATH=%WindowsSdkDir%bin\x86;%WindowsSdkDir%bin\%WindowsSDKVersion%x86;%PATH%
Ich hatte genau das gleiche problem. Mehrere Visual studio-Versionen-einschließlich 2015 und 2017.
Meine Lösung Bestand darin, den cmake-Befehl ab 2017 developer-Eingabeaufforderung, und geben Sie für das Jahr 2015 visual studio-version mit:
cmake -G "Visual Studio 14-2015" ..