web-dev-qa-db-ja.com

VS 2015コマンドプロンプトでrc.exeが見つかりません

Windows 10 Creators Update(バージョン10.0.15063)をインストールしました。

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

問題

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

再生

CMakeLists.txtのコンテンツ:

project (test)
add_executable (test test.cpp)

test.cppの内容は無関係です。)

VS2015 x64ネイティブコマンドプロンプトでの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(リソースコンパイラ)が見つかりません。実際、同じVS 2015コマンドプロンプトで:

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

VS 2013コマンドプロンプトで見つかったis

> 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

さまざまなVSコマンドプロンプトでPATH環境変数の内容を確認します。

  • VS 2013コマンドプロンプト内には、PATHが含まれています

    C:\Program Files (x86)\Windows Kits\8.1\bin\x64
    
  • VS 2017コマンドプロンプト内には、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コンポーネント:

VS 2017 components installed

63

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 Update 3セットアップを再実行し、追加するように指示しました

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

これによりrc.exeおよび関連ファイルが表示されました

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

実行中rc -v on

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である必要がありますが、以前のインストールではセットアップされませんでした。

86
DaveCleland

それは間違いなくあなただけではありません。昨日VS2017をインストールしましたが、そうすることで同じ問題が発生したようです。良い解決策はありませんが(これはバグとしてマイクロソフトに報告する必要があります)、ハッキーな回避策があります。

Rc.exeとrc.dllをコピーできました

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

これで問題は解決しました。私の考えでは、レジストリキーは上書きされますが、確実に掘り下げることができません。

14
Falcon

Windows 10 15063.608(Windows SDK 10.0.15063.0)でも同じ問題が発生しました。私のために働いている解決策は、以下に示すようなWindows 10キットのバイナリx64およびx86フォルダ用のハードリンク作成です(管理者権限でプロンプトを使用):

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"

(これらのコマンドを実行する前に、既存のWindows Kits\10\bin\x64フォルダーとWindows Kits\10\bin\x86フォルダーの名前を変更するだけです-使用されていないようです。

5

何らかの理由で、組み込みのTools(1.4.1)およびWindows 10 SDK(10.0.14393)インストーラーが機能しませんでした:

  1. C:\Program Files (x86)\Windows Kits\10\bin\x86がインストール中に読み込まれました(成功!)
  2. ...その後人口が減りました(悲しみ!)
  3. そして最終的に、インストーラーはエラー-2147023293/0x80048646を返しました。

"Windows 10 SDK(ver。10.0.14393.795)"インストーラー から Windows SDKおよびエミュレーターアーカイブ は動作しました:C:\Program Files (x86)\Windows Kits\10\bin\x86は、rc.exeを含む、取得されたままになります。

Windows 7 x64、Visual Studio Professional 2015 Update 3。

4
genpfault

これにこだわる人にとって、特定の問題セットは次のとおりです。

  1. 新しいwindows 10 PCを取得する
  2. vSのインストール2017 [*]
  3. アンインストール VS 2017および
  4. vSのインストール2015

上記を行うと、

windows/VSインストーラーのスイート全体にバグやその他の動作があるようです。

基本的に、MSFTが修正しなければならない4つの問題があります。(a)rc.exeをインストールしない場合があります。(b)c ++のものを要求するだけの場合、rc.exeをインストールしません。すべての場合(c)アンインストールパイプラインは、さまざまな方法ですべて台無しになっているようです(d)rc.exeをランダムにインストールしても、パスを忘れたり、汚したりします。

:/

長い退屈な話を短くすると、ソリューションには1つ以上が含まれているようです

  1. 基本的に10.0.10011.16384をインストールまたは再インストールします(ただし、2つではなく、1つのみ)
  2. 周りを見て、rc.exeがプレーンで、完全に、not thereであるかどうかを確認します。その場合は、インストールします(どこか、どこでも)
  3. vSでは、c ++のものを「ちょうど」インストールできると思うでしょうしかしない。実際には、すべてのWeb、何とか何とか開発のものに「はい」をチェックする必要があります。これは、rc.exeを取得する「希望」を与えてくれるようです。これを行った後、ポイント2に再度アクセスしてください。
  4. 2、3、そしておそらく2を繰り返した後、あなたはまだあなたの実際の道にそれを持っていないでしょう。私はあなたの道でそれを持っている「最良の、自然な」場所であるかを知りたいのですが、それは失われた原因のようです。どこか、どこでもあなたの道に押し込んでください。
  5. 単純なcmakeファイルをどこかに作成し、動作をテストします。

。 。 。 。 。 。

[*] VS 2017に付属している可能性があります。VS2017が他の何か、Unityなどで迷惑なようにインストールされることを忘れないでください。

2
Fattie
  1. オンラインインストーラーvs_community2017.exeを実行します。
  2. vS2017の変更を選択します
  3. c ++を使用したデスクトップ開発の選択
  4. windows 10 SDK(私のバージョンは10.0.10586)を選択してインストールします

VS2015コマンドプロンプトを実行します。

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

Vs2017デフォルトでは最新のSDKがインストールされ、古いバージョンが上書きされるようです。

2
yezhiyun

Windows Sdkバージョン10.0.16299.0を使用したVS2017 Community 15.4.5でも同様の問題が発生しますが、TeamCityを介したビルドのみです。 VS内からのビルドは正常に機能するため、VS開発者コマンドプロンプトから起動するときはMSBuildでビルドします。したがって、これはOPの質問に正確に答えるわけではありませんが、非常に類似しており、これは最初の検索一致の1つなので、ここに追加します。

notのインストールを修正する必要がある(リンク/コピーなしでエラーが発生しにくく、自動化が容易)ソリューションを見つけました:

VisualStudioVersion環境変数を15.0に設定します。

あなたはそのために標準的なWindows GUIを使用してこれをグローバルに行うことができます(Windows 10 here の例)が、VSの他のバージョンと干渉する可能性があるため、それに対しては強くお勧めします変更はビルドコードに簡単に自動化またはチェックインされるため、さまざまなマシンで再現するのが難しくなります。より良い代替方法は、ビルドを実行するコマンドラインでこれを設定することです(cmd:set VisualStudioVersion=15.0 PS:TeamCityの$env:VisualStudioVersion = '15.0'env.VisualStudioVersionパラメーターを追加します)。別の方法は、このディレクトリをプロパティとしてMSBuildに渡すことです(/p:VisualStudioVersion=15.0を渡すか、teamCityでsystem.VisualStudioVersionを追加します)。

2
stijn

CMAKE_SYSTEM_VERSION=8.1を指定すると、問題が解決しました。

2
Lars Bilke

管理者モードのテキストエディターで「C:\ Program Files(x86)\ Microsoft Visual Studio 14.0\Common7\Tools\VsDevCmd.bat」を開き、行を変更します

@if not "%WindowsSdkDir%" == "" @set PATH=%WindowsSdkDir%bin\x86;%PATH%

@if not "%WindowsSdkDir%" == "" @set PATH=%WindowsSdkDir%bin\x86;%WindowsSdkDir%bin\%WindowsSDKVersion%x86;%PATH%

1
N3UR0CHR0M

私はまったく同じ問題を抱えていました。 2015および2017を含む複数のVisual Studioバージョン。私のソリューションは、2017開発者コマンドプロンプトからcmakeコマンドを実行し、2015 Visual Studioバージョンを次のように指定することでした。

cmake -G "Visual Studio 14 2015" ..

1
kwes

ネイティブ64/86 Visual Studioコマンドで次のコマンドを実行して、vs2015の正しいバージョンを設定するプロンプトを表示します-%comspec%/ k "C:\ Program Files(x86)\ Microsoft Visual Studio 14.0\VC\vcvarsall.bat" AMD64 8.1%comspec %/ k "C:\ Program Files(x86)\ Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 8.1

ネイティブ64/86 Visual Studioコマンドプロンプトで次のコマンドを実行して、vs2013の正しいバージョンを設定します-%comspec%/ k "C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\VC\vcvarsall.bat" AMD64 7.1%comspec%/ k "C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86 7.1

これにより、正しいパスが設定され、問題なく実行されます。 VS2013、VS2015、VS2017がインストールされたWIN10でこれをテストしました。

0
Manoj U