Visual C++ 2010 Expressコンパイラに64ビットプログラミング用の.NET Framework SDKをインストールして以来、このエラーが発生しています。この単一のエラーが発生しているため、単純なプログラムでさえコンパイルできません。私のプラットフォームはx86です。これが役立つ場合のスナップショットは次のとおりです。
私はこれ以上何を言うべきかわかりません。昨日、このコンパイラをダウンロードしたところ、うまく機能していました。 Assemblyで作業できるように32ビットプログラミングから64ビットにアップグレードしたかったので、これをダウンロードしました [〜#〜] sdk [〜#〜] 。 Googleで検索し、ここStackoverflowで検索しました。 Googleはあまり役に立ちませんでしたが、私は投稿を見つけました こちら これは私のものに似ているように見えましたが、答えはあまり正義ではありませんでした。なぜこのエラーが発生しているのか、どうすれば取り除くことができるのか知っていますか?
VC++ディレクトリを確認してください。VS2010では、これらはプロジェクトプロパティにあります。 $(WindowsSdkDir)\lib
がディレクトリリストに含まれているかどうかを確認し、含まれていない場合は手動で追加します。 X64プラットフォーム用にビルドする場合は、「プラットフォーム」コンボボックスからX64を選択し、$(WindowsSdkDir)\lib\x64
がディレクトリリストに含まれていることを確認してください。
プラットフォームツールセットを、プロジェクトプロパティ->構成プロパティ->一般の「Windows7.1SDK」に変更します。
VC++ディレクトリ(プロジェクトを右クリック、プロパティページをクリック)にあることを確認してください。
コマンドライン(つまり-makefile)ユーザーのみ:
あなたは(私のように)おそらく次のような方法で、メイクファイルを#1に「調整」します。
MS_SDK_BASE_DOS := C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A
ENV_SET := LIB="$(MS_SDK_BASE_DOS)\Lib\x64"
ただし、次のように、このチューニングを上記の#2に変更する必要があります。
MS_SDK_BASE_DOS := C:\Program Files\Microsoft SDKs\Windows\v7.1
(「v7.0A」から「v7.1」への変更もお見逃しなく。)
プロジェクト->プロパティ->構成プロパティ-> VC++ディレクトリ-> ライブラリディレクトリにWindowsSdkのlibパスを追加します。
私は次のパスを追加し、エラーが発生しました::
C:\ Program Files(x86)\ Microsoft SDKs\Windows\v7.1A\Lib;
私のシステムはWin-7、64bit、VS 2013、.net framework 4.5
同様のエラーが発生しました。プロジェクトプロパティの[リンカー->入力->追加の依存関係]リストをチェックすると、問題は停止しました。セミコロン「;」が欠落していました「%(AdditionalDependencies)」の直前。また、同じエントリを2回取得しました。このリストは、デバッグ用とリリース用に別々に編集する必要があります。
Visual Studio 2017を搭載したWindows 10では異なる問題がありましたが、同じ効果がありました。私の問題は、VSが「C:\」以外のドライブにインストールされたためだと思います。再インストールして問題を解決しました Windows 10 SDK
最初に、Windows SDKをアンインストールする必要がありました(2つのバージョンがインストールされていました)。次に、実行可能ファイルを実行しました。一度インストールすると、Visual Studioが実行され、正常に機能しました。
Visual Studio 2017 で、プロジェクトプロパティ-> 構成プロパティ-> 一般、選択済みすべてのプラットフォーム(1)、ドロップダウンを選択(2) Windows SDKバージョンの下で、 10.0.14393.0からインストール済みのものに更新(3)。私にとっては、 10.0.15063.0.
追加の詳細: Windows SDKバージョンは、VSが正しいパスを選択するのに役立ちます。 VC++ディレクトリ->ライブラリディレクトリ-> 編集-> マクロ->そのマクロを表示 $(WindowsSDK_LibraryPath_x86)には、上記で選択したバージョン番号のパスがあります。
OS:Win10、Visual Studio 2015
解決策:コントロールパネルに移動--->プログラムをアンインストール--- MSvisual studio ---->変更----> organize = repair
そしてそれを修復します。修復が完了するまでインターネットに接続する必要があることに注意してください。
幸運を。
上記の解決策が機能しない場合は、Properties-> VC++ Directories-> Library Directoriesに$(LibraryPath)があるかどうかを確認してください。不足している場合は、追加してみてください。
私は自分でこの問題に出会い、解決しました。私の問題は少し異なります。 Windows 10でVisual Studioを使用しています。プロジェクトを作成すると、Target Platform Version
は自動的に10.0.15063.0
に設定されました。ただし、このバージョンのSDKにはkernel32.lib
はなく、他の必要なヘッダーファイルとlibファイルもありません。そこで、Target Platform Version
を8.1
に変更しました。そしてそれは働いた。
環境:
ソリューション:
Property Page
;を開きますGeneral
ページに移動します。Target Platform Version
を目的のターゲットプラットフォームに変更します(例:8.1
)。geroのソリューションがうまくいきました。
Visual Studios 2012では、次の手順を実行します。
-ソリューションエクスプローラーに移動
-プロジェクトを右クリックします
-プロパティに移動
-構成プロパティ->一般
-プラットフォームツールセット-> Windows7.1SDKに変更
今日、Visual Studio 2017では同じ問題が発生しました。
私の場合の原因は、NETFXSDKDir(NETFXSDKDir=C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1
)の不適切な環境設定であることが判明しました。代わりにNETFXSDKDir=C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\um\x86
にする必要があります。具体的には、VS2017のコマンドプロンプト用のこのバッチファイル(私のディレクトリには実際に4つの異なるファイルがあります)で設定されているように:
_%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars32.bat"
_
「インストールされたままの」バッチファイルの1つを変更することに消極的です。さらに、そのバッチファイルが別のバッチファイルを呼び出すため、
_@call "%~dp0vcvarsall.bat" x86 %*
_
...特定のC++コマンドラインアプリの代わりに、明示的なパステキストを追加しました:;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\um\x86
このような「ライブラリディレクトリ」の合計文字列:$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);$(NETFXKitsDir)Lib\um\x86;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\um\x86
。 (プロジェクト、プロパティ→構成プロパティ→VC++ディレクトリ→ライブラリディレクトリを右クリックします。)これにより、「致命的なエラーLNK1104:ファイル 'kernel32.lib'を開けません」エラーが解決しました。 このGitHubの問題 でヒントを見つけました。
これは、Visual Studio 2017 Enterprise 2017バージョン15.1(26403.0)で「修復」インストールが成功した後でも、新しいVisual C++ Win32コンソールアプリケーションを作成してコンパイルしようとした場合でも再現可能であることに注意してください。
実際、空のアプリケーションが作成されない限り、デフォルトのテンプレートには_<SDKDDKVer.h>
_への参照も含まれており、これにより追加のエラーError (active) E1696 cannot open source file "SDKDDKVer.h"
が発生します。だから私は 空のC++プロジェクトを作成した 。