Visual Studio 错误:LNK1104:无法打开文件'kernel32.lib' - 仅在 WP8 项目/Win32 版本中
Visual Studio error: LNK1104: cannot open file 'kernel32.lib' - only in WP8 projects / Win32 builds
我最近遇到了这个问题(几天前一切都很好):Visual Studio 2012开始拒绝构建本机WP8项目。
今天,我从模板"Windows Phone Direct3D应用程序(仅限本机)"创建了新的解决方案,以检查我新创建的DLL是否在WP上得到正确支持。我试图编译这个项目,首先没有任何更改或额外的引用-纯代码由VS生成。然而,它失败了,给出了错误。我很清楚这意味着什么,可能的原因是什么,但我不明白,霍维尔,在这种情况下,它是从哪里来的。奇怪的是:这只发生在"Win32"配置中,ARM编译良好:
1>------ Build started: Project: PhoneDirect3DApp, Configuration: Debug ARM ------
.......
Build Summary
-------------
00:11.742 - Success - Debug ARM - PhoneDirect3DAppPhoneDirect3DApp.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 - PhoneDirect3DAppPhoneDirect3DApp.vcxproj
我的标准(本机C++/Win32)项目也可以按预期工作(在Win32和x64平台目标中)。
项目配置:(在两个平台中)
链接器::输入:
d3d11.lib;%(AdditionalDependencies)
链接器::忽略:
ole32.lib;%(IgnoreSpecificDefaultLibraries)
VC++目录:
Microsoft.ARM.Cpp.User:
$(WP80ToolSetPath)libarm;$(WindowsSDK_LibraryPath_ARM);
Microsoft.Win32.Cpp.User:
$(VCInstallDir)lib;$(VCInstallDir)atlmfclib;$(WP80ToolSetPath)libx86;$(WindowsSDK_LibraryPath_x86)
还有什么可能是错误的或配置错误的想法吗?我没什么想法了,我以前从未见过这样的事情。
顺便说一句,我注意到了另一个变化:当我以前试图在ARM配置中编译WP8项目时,总是出现一个错误,说"不支持在桌面上构建ARM应用程序"(或类似的事情)。现在ARM编译没有问题。这正常吗?
最后,我找到了问题的原因:正如我所怀疑的,Visual Studio的内部配置已经损坏。
我完成了所有标准步骤,在LNK1104的情况下可以执行,然而:
-kernel32.lib位于有效位置-所有include和库目录都是正确的-每个项目都附带了标准的*.props文件
然而,原因在其他地方。
所有路径都是使用标准宏定义的。其中之一是$(WindowsSDK80Path),用于构建包含/库路径。在我的系统上,这个宏被定义为
C:Program Files (x86)Windows Phone Kits8.0
而不是
C:Program Files (x86)Windows Kits8.0
就这样。我不知道这个问题是什么时候或如何出现的。通过原始安装程序进行Visual Studio修复是修复所有问题的足够方法。所有项目现在都可以编译,没有任何问题。
- 如何用参数值调用函数(仅在运行时已知)
- 模板方法访问正向声明的类仅在没有此指针的情况下无法编译
- 仅在函数模板中为那些定义了函数的类型执行函数
- 如何使布尔变量仅在设置为 true 时才为真?
- C++,Qt:仅在双击后编辑qtablewidget项目
- WinVerifyTrust 仅在使用文件而不是内存 blob 时才有效
- 仅在大型阵列上出现合并排序分段错误
- 仅在可变模板类中调用现有函数
- pcap_handler回调仅在使用 NPCAP v0.9991 时包含空数据包
- CIN 仅在输入非数字值时跳过下一个 CIN
- 仅在 MacOS 上析构函数的未定义符号
- 仅在 zlib c++ 库中强制动态编码
- std::ifstream 在读取文件中最后一项时设置 eofbit,但仅在读取数值类型时发生
- 如何运行一个类的多个对象,该类的函数仅在C++中调用线程?
- C++ SFML 仅在按下按钮时应用
- 如果变量数据包含大于 vector 所有元素的整数,则仅在视觉工作室上接收"矢量下标超出范围"?
- 如何使虚函数接受仅在派生类中定义的数据类型?
- 仅在少数方法(静态或共享库)中解析的外部符号
- 仅在 rasperry pi 要求时才在 Arduino 上运行C++
- Visual Studio 错误:LNK1104:无法打开文件'kernel32.lib' - 仅在 WP8 项目/Win32 版本中