web-dev-qa-db-ja.com

Visual Studio 2013:CL.exeはコード-1073741515で終了しました

fresh Visual Studio 2013 Proでfresh Windows 8.1 Pro x64をインストールしています。プラットフォームツールセットを使用してプロジェクトをWindows7.1SDKにコンパイルしようとすると、

Error   1   error MSB6006: "CL.exe" exited with code -1073741515.   C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.targets   57  5   MenuBrowser

付属の「Windows SDK構成ツール」を実行してみたところ、Visual Studio 2005および2008がインストールされていないというエラーが表示されるだけでなく、うまく機能したと思います。

レジストリを手動で編集してみました:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows

CurrentInstallFolderを手動でC:\Program Files\Microsoft SDKs\Windows\v7.1\およびCurrentVersion as 7.1.7600.0.30514。プロジェクトのプロパティを確認し、そこにあるさまざまなパス/変数をクリックすると、$> WindowsSdkDirが正しいことがわかります。

私が何を試すべきかについて何か考えはありますか? Windows 7とVS 2012を搭載した古い開発コンピューターでこの問題に遭遇したことはありません。

L.E.メモとして、v120ツールを使用して新しいプロジェクトを試しても機能しますが、Windows7.1SDKツールが必要です。

12
foxx1337

プラットフォームツールセットを使用してプロジェクトをWindows7.1SDKにコンパイルしようとすると...

これは、VS2013の「新規」インストールでは有効な選択ではありません。あなたが何をしていたのかははっきりしていません、それは確かにもはや「新鮮」ではありません。 Regedit.exeを読み込まれた武器として扱います。VSを構成するレジストリキーセットは、最近、かなり複雑になっています。

-1073741515 == 0xC0000135 == STATUS_DLL_NOT_FOUNDでコンパイラがクラッシュします。もちろん、これはかなり深刻な事故です。SDK7.1を対象とする場合は、neverが発生するはずです。これは、同じコンパイラを使用しているため、SDKディレクトリのみが変更されるためです。コンパイラ自体と、それが使用するDLLはSDKの一部ではなく、マシンにVSがインストールされていない場合にのみ提供されます。 SysInternalsのプロセスモニターを使用してこれを診断できます。CL= EXEプロセスがDLLを検索していて、それが見つからないことがわかります。

7.1をターゲットにする正しい方法は、v120_xpツールセットの選択を使用することです。これにより、XPで実行可能なプログラムが構築され、マシンにインストールされている7.1A SDKも自動的に選択されます。行った変更を取り消すようにしてください。

11
Hans Passant

Windows SDKを使用して、VS2008を使用せずにVS2012でv90プラットフォームツールセットを使用してビルドする方法 からYodansソリューションを参照していますか?

Hans Passantが指摘したように、cl.exeはmspdb100.dllを探しますが(特に)、それらは見つかりません。必要なファイルは、以下の7.に記載されているディレクトリにあります。

私の作業セットアップ:

  1. VS2013はVS2010ライブラリを使用する必要があります
  2. VS2013でのWinSDK 7.1ビルドツール(v100)の使用
  3. クリーンインストール、sdkリリースノートに記載されているすべてをアンインストール( からダウンロードできます)http://www.Microsoft.com/en-us/download/details.aspx?id=8279 カテゴリー[詳細] の下
    1. Microsoft Windows SDK for Windows 7(7.1)(Windows SDKコアコンポーネントファイル)
    2. アプリケーション検証
    3. Windows用デバッグツール
    4. Windowsパフォーマンスツールキット
    5. Microsoftヘルプビューアー1.0
    6. Microsoft Visual C++ 2010再頒布可能パッケージ
    7. Microsoft Visual C++ 2010 Standard Edition
    8. さらに、.NETおよびVC++関連のすべてのMSソフトウェアを削除(必要に応じてテストされていません)
  4. vS2013のプラットフォームツールセットとしてWindows7.1SDKを選択
  5. エラーMSB6006:「CL.exe」はコード-1073741515で終了しました
  6. cl.exeは、msobj100.dll、mspdb100.dll、mspdbcore.dll、およびmspdbsrv.exeのいずれかを探します。
  7. PATHに追加:C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\Common7\IDE
  8. ビルドが動作し、バイナリが使用可能です!

私がした間違い:

  1. 上記の6.のファイルをC:\ Program Files(x86)\ Microsoft Visual Studio 10.0\VC\binにコピーしました。このディレクトリはPATHにあると信じていますが、そうではありませんでした。
  2. 上記の7.またはYodanの で推奨されているように、Windows SDKを使用してVS2008を使用せずにVS2012でv90プラットフォームツールセットを使用してビルドする方法を教えてください。
5
Kai Schubert

次の手順は、VS 2017で私のために機能します。

1. VS 2017を閉じます。2.マシンを再起動します。 3. VS 2017でソリューションを開きます。4.プロジェクトをビルドします。今回は、次のエラーが発生せず、正常にビルドされます。

エラーmsb6006 "link.exe"はコード-1073741819で終了しました。

0
Pabitra Dash