web-dev-qa-db-ja.com

SDKDDKVer.hがありませんが、WinSDKがインストールされていますか? (c ++ヘッダーの問題)

だから私は最近.NET 4.5(Visual Studio 2012 Professional)でVC++に戻りました。Web開発、python and c#。全体として言語に慣れているため、構文の点で見事に優れており、メモリ管理の自由度、ポインタ、および参照が大好きです。「hello world」のものとBAM!エラーから始めます。

他の多くの人がこの問題に遭遇するので、コンパイルして実行しようとすると、IntelliSenseエラーが発生します。

cannot open source file "SDKDDKVer.h"" and the fatal error: "error C1083: Cannot open include file: 'SDKDDKVer.h': No such file or directory

また、Visual Studio 2010(C#Express)をインストールしています。 inclとlibのVC++ディレクトリがすべて正しいこと、およびMicrosoftと事実上すべてのC++開発者が推奨するディレクトリであることを確認しました。最新のWinSDK(8.1)をインストールしてヘッダーとそのすべての機能を取得しようとしましたが、そこにないことは約110%確信しています。 Win7のSDKが常駐することを期待して、今すぐSDK for Win7をインストールしています(ただし、時間がかかることは確かです)。

私のPCには、マシンを15分間放置したときに解決する必要があるすべての問題についてのみ、ターミナルブルースクリーニングの問題があります。ハードドライブの問題でしょうか。

誰か助けてくれますか?絶対に頭を上げている、下がっている、明白であるかどうかはわかりませんが、とにかく読んでくれてありがとう。

編集:@MichaelBurrがビルドログを要求したため、下部に完全に投稿することができなかったため、ここに追加すると考えました。

Build started 14/03/2014 00:34:11.
 1>Project "c:\Users\Brandon\documents\visual studio 2012\Projects\ConsoleApplication4\ConsoleApplication4\ConsoleApplication4.vcxproj" on node 2 (Build target(s)).
 1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppBuild.targets(344,5): warning MSB8003: Could not find WindowsSDKDir variable from the registry.  TargetFrameworkVersion or PlatformToolset may be set to an invalid version number.
 1>ClCompile:
     C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\CL.exe /c /ZI /nologo /W3 /WX- /sdl /Od /Oy- /D WIN32 /D _DEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Yc"stdafx.h" /Fp"Debug\ConsoleApplication4.pch" /Fo"Debug\\" /Fd"Debug\vc110.pdb" /Gd /TP /analyze- /errorReport:Prompt stdafx.cpp
     stdafx.cpp
 1>c:\users\brandon\documents\visual studio 2012\projects\consoleapplication4\consoleapplication4\targetver.h(8): fatal error C1083: Cannot open include file: 'SDKDDKVer.h': No such file or directory
 1>Done Building Project "c:\Users\Brandon\documents\visual studio 2012\Projects\ConsoleApplication4\ConsoleApplication4\ConsoleApplication4.vcxproj" (Build target(s)) -- FAILED.

ビルドに失敗しました。

経過時間00:00:00.12

9
Ary-Senpai

あなたが投稿した空のプロジェクトと同じ問題がありますか? Windows 7 32ビットおよび64ビットとXP 32ビットを使用してプロジェクトを試してビルドしました。すべて正常にビルドされ、SDKDDKVer.hの検索に問題はありません。

依存関係パスの設定に問題があるはずです。

VSのあるインストールから別のインストールに、おそらく32ビットから64ビット(またはその逆)のマシンにVS設定を転送した可能性はありますか?この場合、パスに誤ったフォルダ名が含まれている可能性があることに注意してください。 32ビットシステムの場合、すべてのアプリケーションはデフォルトでC:\ Program Filesにインストールされますが、64ビットマシンの場合、すべての32ビットアプリケーションはProgram Files(x86)にインストールされます。これはVSの場合です。すべてのインクルードファイルは次の場所にあります。

  • C:\ Program Files(x86)\ Microsoft SDKs\Windows\v7.0A\Include-元のVSインストール
  • C:\ Program Files(x86)\ Microsoft SDKs\Windows\v7.1A\Include-7.1 VS SDKのインストール後

他のSDKパッケージがインストールされている場合は、SDKDDKVer.hを含む別のフォルダーがある可能性があります。

  • C:\ Program Files(x86)\ Windows Kits\8.0\Include\shared
  • C:\ Program Files(x86)\ Windows Kits\8.1\Include\shared
  • C:\ Program Files\Microsoft SDKs\Windows\v6.0A\Include
  • C:\ Program Files\Microsoft SDKs\Windows\v7.0\Include
  • C:\ Program Files\Microsoft SDKs\Windows\v7.1\Include

プロジェクト設定では、次のインクルードパスが必要です。

  • $(VCInstallDir)include
  • $(VCInstallDir)atlmfc\include
  • $(WindowsSDK_IncludePath)

使用されているマクロに注意してください。親のデフォルト設定から継承する必要があります。 Microsoft.Cpp.Win32.user.propsファイルに保存されている設定を編集して、プロパティマネージャーのパス設定を上書きした可能性があります。

プロジェクトが以前のバージョンのVSから変換された場合に発生した可能性があります。

0
JohnCz

上記の情報で問題を解決できない場合は、VS2013の経験から以下の手順を提案します。

  1. プロジェクトのプロパティ>構成> VC++ディレクトリ> ディレクトリを含めるを選択して追加します:c:\ Program Files(x86)\ Microsoft SDKs\Windows\v7.1A\Include
  2. プロジェクトのプロパティ>構成> VC++ディレクトリ> ライブラリディレクトリを選択して追加します:c:\ Program Files(x86)\ Microsoft SDKs\Windows\v7.1A\Lib

その構成の後、私はrc.exeリンクエラーについて問題がありました。この問題には、もう1つ必要なことがあります。

  1. RC.exeおよびRcDll.dllファイルをC:\ Program Files(x86)\ Microsoft SDKs\Windows\v7.1A\Binからコピーしますそして、それらをC:\ Program Files(x86)\ Microsoft Visual Studio 12.0\VC\binに貼り付けます。これらすべての構成手順の後で、単純な「Hello World!」を構築できます。例では、運が良ければ実行します。
17
Mustafa Kemal

これは私にとってうまくいきました:「ソリューションをVS2010からVS2013に変換したとき、最近この問題が発生しました。各プロジェクトのすべての構成。」

3

私はまさにこの問題を抱えていました。さまざまなパスを調べて変更を試み、すべてのMS製品をアンインストールして再インストールするなどして何時間も問題を解決できなかったため、C:\ Users\{ファイルを開くことで解決策を見つけました。 user}\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.propsおよび変更

<PropertyGroup>
  <IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;C:\Program Files (x86)\BCGSoft\BCGControlBarPro\BCGCBPro;C:\Program Files (x86)\BCGSoft\BCGControlBarPro\BCGCBPro</IncludePath>
  <LibraryPath>$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;C:\Program Files (x86)\BCGSoft\BCGControlBarPro\bin;C:\Program Files (x86)\BCGSoft\BCGControlBarPro\bin</LibraryPath>
</PropertyGroup>

<PropertyGroup />

この問題がどのように発生したのかはわかりませんが、同僚のマシンからファイルをコピーすることによって解決策を見つけました。この問題は、BCGControlBarProの最近のインストールとアンインストールに原因がある可能性があります...

3
Bjerner

この質問にはいくつかの回答があることは知っていますが、問題の解決策を説明したいと思います。私は検索し、検索しましたが、良い資料はあまり見つかりませんでした。私の解決策は、プロジェクトを右クリックして、プロパティに移動することでした。プロパティタブで、WindowsSDKのバージョンを、インストールした唯一のバージョンに変更しました。これで問題が解決しました。

なぜこれが起こったのですか?よくわかりませんが、Visual Studioが更新を実行し、Windows UpdateがWindows 10の最新ビルドをインストールした後に発生しました。これが発生した場合、プロジェクトのSDKバージョンがインストールされているSDKと一致しなかったと思います。

これが検索の将来の時間で誰かを救うことを願っています!

2
Kenny Blackmon

Mustafa Kemalの答えは正しいですが、VC++プロジェクトごとにこのディレクトリとライブラリを個別に追加したくない場合は、それらをWindowsの環境変数でシステム変数として定義してから、コンピューターを再起動する必要があります。

変数名:WindowsSDK_IncludePath、変数値:c:\ Program Files(x86)\ Microsoft SDKs\Windows\v7.1A\Include。

そして

変数名:WindowsSDK_LibraryPath_x86、変数値:c:\ Program Files(x86)\ Microsoft SDKs\Windows\v7.1A\Lib

2
Elnaz Yousefi

ソリューションをVS2010からVS2013に変換したときに、この問題が発生しました。各プロジェクトのすべての構成について、「プロジェクトのプロパティ>構成> VC++ディレクトリ>ディレクトリを含める」の「親またはプロジェクトのデフォルトから継承」チェックボックスをオンにするだけで解決しました。

1
Shane

同じマシンにインストールされた2008、2010、1012、2013を実行しています-Windows 7およびXP 32および64ビット、7 32ビット、問題なく。

別のバージョンのVSで作成されたプロジェクトを構築しようとしていますか?

プロジェクトに設定されている依存関係に問題があるか、間違ったバージョンに設定されているSDKバージョンに問題があるようです。

たとえば、ダイアログベースのアプリケーションなど、別のプロジェクトを作成する場合。この問題は解決しませんか?バッチファイルを実行する必要はありません。

  • プロジェクトのプロパティを開きます(プロジェクトを右クリックしてプロパティを選択します)。

  • [構成プロパティ]で[全般]を選択します

  • 右側のペインでプラットフォームツールセットをオンにします。 Visual Studio 2008(V90)に設定しないでください。

再構築してみてください。問題が解決しない場合は、プロジェクトを共有してください。

それを圧縮し、いくつかの共有サービスを使用して投稿します(ドロップボックスなど)。

0
JohnCz

これは、インクルードまたはライブラリのパスを追加し、プロジェクトのプロパティにすでに記述されている元のパスを削除すると発生することがあります。

$(VCInstallDir)includeなど、includeまたはlibディレクトリの古いパスは削除しないでください。 $(VCInstallDir)altmfc\include; $(WindowsSdkDir)include; $(FrameworkSDKDir)\ include;

Libパスの場合も同じで、各インクルードをlibに置き換えます。

宜しくお願いします

0
shaima alsalihy