web-dev-qa-db-ja.com

Visual Studioはrc.exeのためにビルドできません

オンラインで検索しましたが、問題に似たものは見つかりませんでした。

空のC++プロジェクトを作成し、戻り値を持つmain.cppを追加しましたが、ビルドできません。ここに私が受け取るメッセージがあります:

1>------ Build started: Project: Project1, Configuration: Debug Win32 ------
1>LINK : fatal error LNK1158: cannot run 'rc.exe'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

この実行可能ファイルの場所を指定できるVS2012内のどこかにありますか? Windows 7 SDKをインストールしました。この実行可能ファイルは次の場所にあります。

C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin

私はCode :: Blocksから来ており、問題なくmingw-gccを使用していますが、最近、マネージ実装にVSが必要になったので、誰かがアイデアを持っていることを願っています。

104
Patrick.SE

Googleでこれを見つけました...あなたの場合、rc.exercdll.dllvisual studio 2012\vc\binにコピーするか、どこにインストールしたと仮定します:

パート2:FIX LINK:fatal error LNK1158: cannot run ‘rc.exe’

これをPATH環境変数に追加します。

C:\ Program Files(x86)\ Windows Kits\8.0\bin\x86

これらのファイルをコピーします。

rc.exe
rcdll.dll

から

C:\ Program Files(x86)\ Windows Kits\8.0\bin\x86

C:\ Program Files(x86)\ Microsoft Visual Studio 11.0\VC\bin

または私もこれを見つけました:
Microsoftは、MSVTパッケージからいくつかのことを除外しました。それらが誤ってまたはライセンス上の理由で取り残されたかどうかを誰も知らないので、MSVCを持っている人は誰もそれらを与えることにあまり興味を持ちません。いくつかのGoogle検索では、いくつかのトリッキーなソースが見つかります。幸いなことに、Microsoftはついにこの問題やその他の問題を解決しました。

http://msdn.Microsoft.com/vstudio/express/support/faq/default.aspx#pricing

http://msdn.Microsoft.com/vstudio/express/support/install/

大量のMSVT欠落ファイルがありますが、欠落SDKファイルはありません。

この:
これを行うことで解決したのと同じ問題がありました。

  1. Microsoft .Net Framework 2.0のインストール
  2. .NET Frameworkファイルのパス(私にとっては「C:\ WINDOWS\Microsoft.NET\Framework\v2.0.50727」)をグローバルコンパイラ設定>プログラム> Code :: Blocks内の追加パスに追加します。

これで、エラーなしでリソースファイルをビルドおよびリンクできます。

183
Kat Cox

この問題は、VS2017をマシンにインストールした後、CMake/Visual Studio 2015ビルドで発生しました。この場合の正しい解決策は、Visual StudioコマンドプロンプトにWindow Kitバージョン(8.1)を指定することです。それ以外の場合は、binディレクトリにrc.exeを含まないWindows 10 Kitがデフォルトで取得されます。

例えば[スタート]メニュー-> Visual Studio 2015-> VS2015 x64ネイティブツールコマンドプロンプト

%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" AMD64 8.1

最後に8.1オプションに注意してください

55
MattAU

私が発見したことから、Windows 7 OSを使用している場合、次の手順を実行すると問題が修正されます:

1)C:\ Program Files(x86)\ Microsoft SDKs\Windows\v7.1A\Binに移動します

2)次に、このファイルからRC.exeとRcDllをコピーします

3)C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\VC\binに移動し、コピーした2つのファイルを貼り付けます。

同じ問題が発生し、上記の投稿されたソリューションは機能しませんでした。私の解決策はそれから派生したものであり、私にとってはうまくいきました。上記の解決策が機能しない場合は、この解決策を試してみてください。

28
Tony

このrc.exeエラーは、Visual C++コンパイラとWindows 10 SDKバージョンが同じVisual Studio年に対応していない場合に発生する可能性があります。

Visual Studio 2017があり、独自の2015 Windows SDKのインストールを選択せず​​にビルドツール2015をインストールし(デフォルトのインストールではインストールされない!)、それを使用してコンパイルしようとすると、この問題が発生する可能性があります。

私の場合、すでにVisual Studio 2017がありました。ビルドツール2015を使用してpythonライブラリ(またはおそらく任意のプログラム)をコンパイルしようとすると、この同じ「rc.exe」エラーが発生しました。 Visual Studio 2017からWindows 10 SDKを使用しようとすると、VS2015 14.0 C++コンパイラが誤作動する可能性があることを読みました。

Build Tools 2015をアンインストールして再インストールしました。今回はカスタムインストールとして、両方ビジュアルC++およびWindows 10 SDKコンポーネントを選択しました。これにより問題が修正されました。

16
OrangeSherbet

私の場合、VS2015とVS2017で作成されたプロジェクト間でミックスアンドマッチエラーが発生しました。 .vcxprojファイルには、PropertyGroup Label = "Globals">というセクションがあります。 TargetPlatformVersion = 10.0.15063.0のセクションがありました。 TargetPlatformVersionを削除すると、問題は解決しました。

ここにブロックをコピーして貼り付けることはできませんが、stackoverflowsコーディング形式では許可されていません。

11
Todd Rupper

Windows 7 x64およびVisual Studio 2017を使用しています。 cythonスクリプトをコンパイルしようとすると、このエラーが発生します。それが私が解決した方法です:rc.exercdll.dllをコピーして貼り付けました:

C:\Program Files (x86)\Windows Kits\8.1\bin\x86

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_AMD64
6
alfredopacino

私のほぼ同様のケースは次のとおりです。
Win7 32bitでVC2010作業プロジェクトがあります。 Win8.1 64bitでVC2013をクリーンインストールします。プロジェクトをVC2010からVC2013に正常に変換した後、最初のコンパイル中に次のエラーが発生します。
完成した生成コード
リンク:致命的なエラーLNK1158: 'rc.exe'を実行できません

解決策1:
VC2013を実行する前に、メモ帳のNameOfYourSolution.vcxprojファイルの要素「<PropertyGroup>」の行全体「<ExecutablePath Condition =” ...”> ... </ ExecutablePath>」を削除します
解決策2:
「c:\ Program Files(x86)\ Windows Kits\8.1\bin\x86 \」から「c:\ Program Files(x86)\ Microsoft」のrc.exeとrcdll.dllの2つのファイルのみをコピーしますVisual Studio 12.0\VC\bin \」とコンパイルが成功します!!
注意:
a)PATH、その他のWindows、またはVC環境変数に触れる必要はありません。
b)「プラットフォームツールセット」(プロジェクトプロパティページ->構成プロパティ->全般)は、「Visual Studio 2013(v120)」に自動的に設定されます(「Visual Studio 2010」に変更しないでください) VC2013の概念の下でプロジェクトの開発を続けてください)

4
Angel T

私の場合、エラーはvcxprojの不適切な設定が原因でした。 vcxprojはサードパーティのものであるため、その状態でどのようになったかはわかりません。

具体的には、プラットフォーム/プロファイルコンボの1つについて、Windows SDK binフォルダーにプラットフォームフォルダーがありませんでした。

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 <ExecutablePath>$(VCInstallDir)bin\x86_AMD64;$(VCInstallDir)bin;$(WindowsSdkDir)bin\NETFX 4.0 Tools;$(WindowsSdkDir)bin\x86;

正しい、どこ

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 <ExecutablePath>$(VCInstallDir)bin\x86_AMD64;$(VCInstallDir)bin;$(WindowsSdkDir)bin\NETFX 4.0 Tools;$(WindowsSdkDir)bin;

間違っていました。違いを確認するには、コードボックスの最後までスクロールする必要があります。

また、奇妙な理由で$(WindowsSdkDir)bin\x64;私のために働かなかった。 rc.exeがそのフォルダに確実に存在するのに、なぜあきらめようとしたのかを理解しようとしました。

私の意見では、プロジェクトが他の人のマシンで動作しないため、場所全体にrc.exeをコピーすることを含む以前のポスターからのソリューションは間違っています。プロジェクト内のパスを正しく修正すると、Windows SDKが正しくインストールされているすべてのマシンで機能するはずです。

4
Steve

私はWindows 10 x64およびVisual Studio 2017を使用しています。rc.exeとrcdll.dllをコピーして貼り付けました:

C:\Program Files (x86)\Windows Kits\8.1\bin\x86

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\AMD64

動作するのは:(qt creator 5.7.1)

3
dodo

これは少し時代遅れかもしれません。ただし、rc.exeとexdll.dllのコピーが機能しない場合は、windows sdkフォルダーが存在しても、windows sdkが正しくインストールされない可能性があります。次のページでwin 8のSDKを更新できます。 http://msdn.Microsoft.com/en-US/windows/hardware/hh85236 SDKを再インストールすると、問題が発生します解決しました。また、プラットフォームツールセットが適切に設定されていることを確認してください。

3
beebee

Windows 7でVS 2013(Update 3)とIntel Parallel Studio XE Composer Edition for Fortran Windows(Update 5)を使用しています。箱から出して、私は同じ問題を抱えていました。

不足しているrc.exeの問題を修正すると、別の問題が発生しました。リンカーにはkernel32.libがありませんでした。

Intel Composerオプション(TOOLS-> Options ...-> Intel Composer XE-> Visual Fortran-> Compilers)を更新して、両方の問題を修正しました。

追加したWin32タブの場合:

実行可能ファイル: C:\ Program Files(x86)\ Windows Kits\8.0\bin\x86; ($(PATH))の直前

ライブラリ: C:\ Program Files(x86)\ Windows Kits\8.0\Lib\win8\um\x86; (最後に)

追加したx64タブの場合:

実行可能ファイル: C:\ Program Files(x86)\ Windows Kits\8.0\bin\x64; ($(PATH))の直前

ライブラリ: C:\ Program Files(x86)\ Windows Kits\8.0\Lib\win8\um\x64; (最後に)

更新...

また、いくつかのSDKヘッダーファイル(winver.hおよびwinapifamily.h)も欠落していました。同じTOOLS-> Options ...エリアに以下を追加しました。

Win32およびx64タブの両方

含む: C:\ Program Files(x86)\ Windows Kits\8.0\Include\um; C:\ Program Files(x86)\ Windows Kits\8.0\Include\shared;

2
Jeremy Whitcher

最近、この問題に遭遇しました。 VS 2015とVS 2017の両方をインストールし、Windowsキット8.1と10をインストールしました。

VS 2017のコマンドプロンプトは期待どおりに動作し、rc.exeが表示されます。 VS 2015では、これは正しくありません。実際、VS 2015のvcvarsall.batスクリプトはWindows 10キットへのパスをPATH変数に追加しますが、わずかに間違ったパスを追加します。パスを追加します

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

実際のパスは

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

Windows 10キットの更新(またはVS 2017のインストール)がこの問題につながったようです。

そのため、ソリューションは簡単です。「C:\ Program Files(x86)\ Windows Kits\10\bin」フォルダーにシンボリックリンクを作成するだけで、基になるフォルダー内の対応するフォルダーを指します。フォルダー「10.0.17763.0\x86」のシンボリックリンク「x86」、「10.0.17763.0\x64」の「x64」など.

2
Artyom Chirkov

VS 2013でも同じ問題が発生しましたが、Platform Toolsetを変更することで修正できました。

一般的なプロジェクト設定で見つけることができます。

例えば。 Platform ToolsetをVS 2010に切り替えると、VSはWindows\v7.0A SDKを使用します。

ビルド前イベントにこれを追加することにより、使用されているSDKパスを確認できます。

echo using SDK $(WindowsSdkDir)
2
laktak

VS2010(SDK7.1)ソリューションの1つのプロジェクト(合計3つのうち)(プロジェクトは順次線形依存チェーンでリンクされている)を見つけ、プロジェクトファイルに空の.rcファイルがあった。空の.rcファイルを(プロジェクトから、削除せずに)削除すると、「致命的なエラーLNK1158:... cvtres.exe」問題が解決しました。

更新:次のコピーにより問題が修正されました。

xcopy "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_AMD64\"

これにより、MSBuildを介してWinSDK7.1が.rcファイルを実行可能ファイルにコンパイルできるようになります。

2
Sterge

Visual Studio 2015でSDK Windows 10を本当に使用する必要がある場合は、 sdk-archive で古いバージョンをダウンロードする必要があります。 SDKの新しいバージョンはrc実行可能ファイルの場所を変更し、Visual Studio 2015 update 3(最新バージョン)のMSBuildはそれを見つけることができません。少なくともSDK Windowsのバージョン10.0.14393.795は、Visual Studio 2015と互換性があります。

1
Xavier Bigand

環境変数ウィンドウにSDK 8.1のパスを追加します

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

次に、Visual Studio x64 Native toolsコマンドプロンプトを開いて入力します

vcvarsall.bat

1
Khan

これはVisual Studio 2017の場合よりもさらに簡単です。次の指示に従ってください。 https://docs.Microsoft.com/en-us/visualstudio/install/modify-visual-studio Microsoft Visualを使用して変更するにはスタジオインストーラー。

Microsoft Visual Studioインストーラーに入ったら、インストール済みのVisual Studioパッケージの下にある[変更]をクリックし、C++によるデスクトップ開発がチェックされていること、およびMFCおよびATlサポート(x86およびx64)が要約の下にあることを確認します。

1
Bluto

これは、Visual Studioの以前のバージョンORで発生したvcxprojが[構成プロパティ]-> [全般]でプラットフォームツールセットを変更したことが原因である可能性があります。

その場合、可能な解決策:

1)[構成プロパティ]-> [VC++ディレクトリ]に移動します

2)実行可能ディレクトリのドロップダウンを選択します

3)「親またはプロジェクトのデフォルトから継承」を選択します

1
Gunnar

私の場合、Visual Studio 2015-> Modifyを使用してWindows SDK 10586をインストールすると、次のパスがインストールされます。

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

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

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

0
Felix Xu

Visual Studio Community 2019の場合、上記の回答(rc.exe rcdll.dll)のファイルをC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.21.27702\bin\Hostx86\x86にコピーすると、私にとってはうまくいきました。

0
Rahul Kumar

VS2017によってプロジェクトファイルが変更された可能性があります。その後、2015年にプロジェクトをリンクすると、「LINK:致命的なエラーLNK1158: 'rc.exe'を実行できません」とビルドが中断される可能性があります。

Vcxprojで次のことを試してください。

1)交換:

<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion> with:<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>

2)削除:<VCProjectVersion>15.0</VCProjectVersion>

3)置換:<PlatformToolset>v141</PlatformToolset>で:<PlatformToolset>v140</PlatformToolset>

0
user1439579