Visual Studio错误:LNK1104:无法打开“kernel32.lib” - 仅在WP8项目/ Win32构建中
-
22-12-2019 - |
题
最近(几天前一切正常工作):Visual Studio 2012开始拒绝构建本机WP8项目。
今天,我从模板'Windows Phone Direct3D应用程序(仅限本机)创建了新的解决方案,以检查WP上的新创建的DLL是否会得到正确支持。我尝试编译这个项目,首先没有任何更改或其他参考 - VS生成的纯代码但是,它失败了给定错误。 我很了解它的意思和可能是可能的原因,但我无法理解,在这种情况下,它来自哪里。 奇怪的是:这只发生在'Win32'配置中,ARM编译Fine:
1>------ Build started: Project: PhoneDirect3DApp, Configuration: Debug ARM ------
.......
Build Summary
-------------
00:11.742 - Success - Debug ARM - PhoneDirect3DApp\PhoneDirect3DApp.vcxproj
.
但是win32没有:
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和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)
.
任何可能错误或配置错误的想法?我已经没有想到了想法,我以前从未见过这样的东西。
顺便说一下,我注意到了一个更改了:当我试图在ARM配置中编写WP8项目时,总有一个错误,说“建立桌面上的ARM应用程序不支持”(或类似的东西) 。现在ARM编译没有问题。是正常的吗?解决方案
最后,我找到了我问题的原因:正如我怀疑的那样,内部Visual Studio配置已被打破。
我做了所有标准步骤,但在LNK1104的情况下可以执行:
- kernel32.lib was in valid location - all include and library directories was correct - standard *.props files were attached to each project.
然而,原因在别处躺着。
所有路径都使用标准宏定义。其中一个是$(windowssdk8ppath),它用于构建包含/库路径。在我的系统上,这个宏被定义为
C:\Program Files (x86)\Windows Phone Kits\8.0
.
而不是
C:\Program Files (x86)\Windows Kits\8.0
.
而这就是它。我不知道,何时或如何,出现此问题。Visual Studio Repeir Via Orginal Installer是足够的方法来修复一切。所有项目现在都没有任何问题编译。
不隶属于 StackOverflow