1. ホーム
  2. c++

VS 2015 コマンドプロンプトで rc.exe が見つからなくなった。

2023-07-31 21:19:41

質問

Windows 10 Creators Update (バージョン 10.0.15063) をインストールしたところです。

私は複数のバージョンの Visual Studio をインストールしています (2012、2013、2015、2017)。VS 2017 をインストールしたのは、ほんの 2 週間前です。

問題点

CMake (バージョン 3.8.1) を "VS2015 x64 Native Command Prompt" で実行すると、C/C++ コンパイラーが検出されなくなりました (これは は VS 2017 コマンド プロンプト内で実行されると適切に動作します)。

リプロダクション

の内容 CMakeLists.txt :

project (test)
add_executable (test test.cpp)

(の内容 test.cpp は関係ありません)。

VS2015 x64 Native コマンド プロンプトで、CMake を起動します。

> mkdir build
> cd build
> cmake -G "Visual Studio 14 2015 Win64" ..

CMakeの出力です。

-- 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".

分析

を見ると、失敗の理由は明らかです。 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)が見つかりません。確かに、同じVS 2015のコマンドプロンプトで。

> where rc.exe
INFO: Could not find files for the given pattern(s).

一方 は VS 2013 のコマンド プロンプトで見つかりました。

> 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

とVS 2017のコマンドプロンプトを表示します。

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

の内容を確認する。 PATH 環境変数の内容を確認します。

  • VS 2013 のコマンド プロンプトの内部。 PATH には

    C:\Program Files (x86)\Windows Kits\8.1\bin\x64
    
    
  • VS2017のコマンドプロンプトの中。 PATH が含まれています。

    C:\Program Files (x86)\Windows Kits\10\bin\x64
    C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x64
    
    
  • しかし、VS 2015のコマンドプロンプト内では PATH だけが含まれます。

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

    を含まない rc.exe .

質問

  1. これは既知の問題ですか、それとも私のシステムに固有の問題ですか。

  2. この問題を引き起こす Windows 10 Creators Update のインストール、アンインストール、またはシステム内の変更 (おそらく Windows SDK に関連する何か) は何でしょうか?

  3. これを解決するためのクリーンな方法は何ですか。

編集:VS 2017のコンポーネントをインストールしました。

どのように解決するのですか?

Win10 Creators Edition と VS2010, VS2013, VS2015 および VS2017 をインストールした 3 台のマシンで、2 台のマシンで動作し、3 台目で失敗する、このことについて時間をかけて調べました。すべてのマシンに VS2015 Update 3 があり、すべて同じオプションでインストールされているはずでした。

次のバッチ ファイルを実行します。

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

を実行すると、VS2015 x64 環境に対応した正しい環境が構築されます。これには

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

をPATHに追加します。これは rc.exe があるはずです。しかし、私の失敗したマシンでは rc.exe はここから消えていましたが、それは

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

私は戻って、これは設定の問題のように感じて、私はVS2015アップデート3のセットアップを再実行し、追加するように指示しました。

Windows と Web 開発 -> ユニバーサル Windows アプリ開発ツール -> ツール (1.4.1) および Windows 10 SDK (10.0.14393)

Windows

このため rc.exe と関連するファイルが表示されるようになり

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

実行中 rc -v

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

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

は同じバージョン番号の 10.0.10011.16384

なぜ rc.exe が元のインストールから失われていたのかわかりませんが、インストールを再実行し、他の SDK を追加することで、私の場合は修正されました。それは次のようになります。

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

は、デフォルトの rc.exe であるべきですが、以前のインストールで設定されていませんでした。