web-dev-qa-db-ja.com

エラーはファイル「kernel32.lib」を開けません

Windows 7にVS2013とVS2015をインストールしました。

私は既存のC++ Dllプロジェクトを作成しましたが、今ではVS2015を使用して突然ビルドできず、エラーが発生します:

LINK : fatal error LNK1104: cannot open file 'kernel32.lib'

この投稿から: 致命的なエラーLNK1104:ファイル 'kernel32.lib'を開けません 私はkernel32.libファイルを探しに行きました、それはここにあります:

C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86

プロジェクトProperties-> Linker-> Inputに移動してMacrosを選択すると、このパスが実際にあることがわかります。

enter image description here

プラットフォームツールセットがVisual Studio 2013-Windows XP(v120_xp)に設定されています。これは常に設定されていますに。

私のプロジェクトが突然構築を停止したのはなぜですか?何が間違っていたのでしょうか?

8
Harry Boy

原因がpropsファイルを変更するプラグイン/拡張機能である場合、結果としてプロジェクトの「Visual C++ディレクトリ」設定が変更される可能性があります。

だから、私のために働いた解決策は私自身の答えで説明されています 64ビットのVisual Studio 2010プロジェクトをコンパイルできません 、私はここに完全に転写します:

同僚に助けを求めた後、上書きオプションを使用してTFSからプロジェクトのクリーンビルドを取得しても、プロジェクトの[構成プロパティ]> [VC++ディレクトリ]は他のコンピューターとは常に異なることに気付きました。

さらに検索すると、最後の投稿 include/libパスをリセット で解決策が見つかりました。これを完全に転写します。

「del%HOMEPATH%\ AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props」を使用することが常に正しい方法とは限りません。アプリケーションデータフォルダーが通常配置されている "del%USERPROFILE%\ AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props"を使用することをお勧めします。

次に、Microsoft.Cpp.x64.user.propsの内容を確認しましたが、Visual Leaks Detectorによって追加されたものがあることがわかりました。 1か月前のように、VLDを使用してメモリリーク分析を行いました。

そのため、ファイルを削除し、すべてが64ビットで正常にコンパイルされるようになりました!

2
sergiol

VC++ディレクトリを変更したときに、Visual Studio 2013で今日このような問題が発生しました。

プロジェクト->プロパティ-> VC++ディレクトリ: ディレクトリを含む

1
João Luis

今日も同じ問題がありました。どういうわけか、SDK 10.0.15063.0がシステムにインストールされましたが、デスクトップC++ファイルはありませんでした。インストールされたプログラムのリストでSDKを選択し、変更インストールを行い、そこでデスクトップC++オプションを選択すると、必要なファイルが追加され、再びリンクできるようになりました。

1
Werner Henze

今日、Visual Studio 2017でこのような問題が発生しました。私の原因は、NETFXSDKDirの不適切な環境設定であることがわかりました。具体的には:

NETFXSDKDir=C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1

次の値が必要です。

C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\um\x86

ここでより詳細な応答があります:

致命的なエラーLNK1104:ファイル 'kernel32.lib'を開けません

0
gojimmypi

VS2013からVS2017へのいくつかのプロジェクトの次のアップグレードがありました。

元のプロジェクトでは、プロジェクト設定の[VC++ディレクトリ]の下の[ライブラリディレクトリ]項目が手動で変更されていました。
これは、アップグレードから変更を取得しなかったことを意味します。

このオプションを使用すると、デフォルト以外のものが必要ないことを条件に、これが動作するものにリセットされます(SDKが正常にインストールされている場合)。私の場合、v7.1 SDKをポイントしようとしていましたが、vs2017にはインストールされていませんでした。

0
Pete

このエラーは致命的エラーlnk1104でした。「kernel32.lib」ファイルを開けません。 VC++ディレクトリにパスがないため、このエラーが発生しています。この問題を解決するには

  1. オープンビジュアルスタジオ2008
  2. ツール -オプション -プロジェクトとソリューション -VC++ディレクトリ-*
  3. 次に、右隅でLibrary filesを選択します
  4. ここでkernel132.libのパスを追加する必要があります

私の場合、C:\ Program Files\Microsoft SDKs\Windows\v6.0A\Libです

ありがとうございました。

0
Varun Challa