6

最近この問題が発生しました(数日前はすべてうまくいきました):Visual Studio 2012はネイティブビルドを拒否し始めましたWP8プロジェクトVisual Studioエラー:LNK1104: 'kernel32.lib'ファイルを開くことができません - WP8プロジェクト/ Win32ビルドでのみ

今日、新しく作成されたDLLがWPで正しくサポートされるかどうかを確認するために、「Windows Phone Direct3D App(ネイティブのみ)」というテンプレートから新しいソリューションを作成しました。私はこのプロジェクトをコンパイルしようとしました。最初は何の変更も追加のリファレンスもなく、VSによって生成された純粋なコードです。しかし、それは与えられたエラーで失敗しました。 私はそれが何を意味しているのか、また何が考えられるのかをよく知っていますが、私は理解できません。この場合、どこから来るのですか? 奇妙な事は:(期待通り

1>------ Build started: Project: PhoneDirect3DApp, Configuration: Debug Win32 ------ 
....... 
1>LINK : fatal error LNK1104: cannot open file 'kernel32.lib' 

Build Summary 
------------- 
00:09.725 - Failed - Debug Win32 - PhoneDirect3DApp\PhoneDirect3DApp.vcxproj 

私の標準(ネイティブC++/Win32の)プロジェクトでも動作します:これが唯一の 'Win32の' 構成で行われ、ARMは罰金コンパイル:

1>------ Build started: Project: PhoneDirect3DApp, Configuration: Debug ARM ------ 
....... 

Build Summary 
------------- 
00:11.742 - Success - Debug ARM - PhoneDirect3DApp\PhoneDirect3DApp.vcxproj 

が、Win32のにはありませんWin32プラットフォームとx64プラットフォームの両方で使用できます)。

プロジェクト構成:(両方のプラットフォームで)

リンカ::入力:

d3d11.lib;%(AdditionalDependencies) 

リンカ::無視:

ole32.lib;%(IgnoreSpecificDefaultLibraries) 

VC++ディレクトリ:

Microsoft.ARM .Cpp.User:

$(WP80ToolSetPath)lib\arm;$(WindowsSDK_LibraryPath_ARM); 

Microsoft.Win32.Cpp.User:

$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WP80ToolSetPath)lib\x86;$(WindowsSDK_LibraryPath_x86) 

間違っているか、正しく構成された可能性が他に何任意のアイデア?私はアイデアが不足している、私はこれまでのようなものを見たことがない。ところで

は、私は1つ以上の変化に気づいた:私は前にARMのconfigurtionでWP8プロジェクトをコンパイルしようとしていたとき、「デスクトップ上の建物のARMアプリケーションがサポートされていません」と言って、常にエラーがあった(またはそのような何か)。現在、ARMは問題なくコンパイルできます。それは普通ですか?

+1

[同じリンクエラーが発生しました](http://stackoverflow.com/questions/15053337/fatal-error-lnk1104-cannot-open-file-kernel32-lib)助けて。 – 0x499602D2

+0

ファイルが見つからないのでまだファイルがあるかどうかを確認します。 C:¥Program Files(x86)¥Windows Kits¥8.0¥Lib¥win8¥um¥x86¥kernel32.lib –

+0

チェックされています。私が言ったように、私はすべての基本的な点検を行った - 結果なし。しかし、私はVSビルド環境で使用される内部マクロを調べ始めました。何かが壊れているようです。私は解決策の解決のためにフィードバックを提供します。 –

答えて

8

最後に、私は私の問題の理由を発見しました。疑いがあるように、内部のVisual Studio構成が壊れています。しかし、原因は他の場所で横たわっていた

 
- kernel32.lib was in valid location 
- all include and library directories was correct 
- standard *.props files were attached to each project 

しかし私は、LNK1104の場合に実行することができ、すべての標準的な手順を、でした。

すべてのパスは、標準マクロを使用して定義されます。それらの1つは$(WindowsSDK80Path)です。これはインクルード/ライブラリパスを構築するために使用されます。私のシステムでは、このマクロではなく

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

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

として定義され、それはそれだました。私はこの問題がいつ、どのように起こったのか、わかりません。元のインストーラによるVisual Studioの修復は、すべてを修正するのに十分な方法でした。すべてのプロジェクトは問題なくコンパイルされます。