致命错误LNK1104:无法打开文件'kernel32.lib'

0x4*_*2D2 29 visual-studio-2010 visual-c++ libraries

自从我在Visual C++ 2010 Express编译器上安装用于64位编程的.NET Framework SDK以来,我一直在收到此错误.由于我遇到的这个错误,我根本无法编译一个简单的程序.我的平台是x86.如果它有帮助,这是一个快照:

在此输入图像描述

我不知道还有什么可说的.我昨天刚下载了这个编译器,它运行正常.我想从32位编程升级到64位,所以我可以使用Assembly,所以我下载了这个SDK.我在谷歌搜索,甚至在Stackoverflow上搜索.谷歌没有多大帮助,但我发现这里的帖子与我的相似,但答案并没有太多公正.有谁知道为什么会出现这个错误以及如何摆脱它?

小智 18

将平台工具集更改为:项目属性 - >配置属性 - >常规下的"Windows7.1SDK"

  • 这对我来说是即时的.我(随着时间的推移)安装了一些工具,当我回到我的VC++项目时,它不会编译(丢失标题)等.我开始手动代码包含路径,有效,然后我点击链接错误,然后我试过这个解决方案,就像我说的那样,它才有效!! 非常感谢. (4认同)
  • 为什么这样做?它有什么作用? (2认同)

Zai*_*mir 17

检查VC++目录,在VS 2010中可以在项目属性中找到它们.检查是否$(WindowsSdkDir)\lib包含在目录列表中,如果没有,请手动添加.如果您正在为X64平台构建,则应从"Platform"ComboBox中选择X64,并确保它$(WindowsSdkDir)\lib\x64包含在目录列表中.

  • 好吧,您需要检查该变量是否存在.只需从vc ++目录窗口中,单击任何值框,您将看到一个下拉箭头,单击该选项并选择编辑.从弹出的新对话框中,展开宏并查看$(WindowsSdkDir)是否存在,并确保它引用的路径有效.我不是那么你可以简单地用我的答案中提到的$(WindowsSdkDir)替换sdk的完整路径. (3认同)
  • 我添加了它们,我仍然得到同样的错误. (2认同)

nam*_*309 5

确保你有VC++目录(右键单击项目,单击属性页),

  • 包含目录:$(IncludePath)
  • 列表项库目录:$(LibraryPath)


dba*_*nas 5

仅限命令行(即 - makefile)用户:

  1. 安装VC++ Express时,它仅为32位.所以,事情进入C:\ Program Files (x86).
  2. 然后,您决定升级到64位功能.因此,您安装SDK.但它具有64位能力.所以,事情进入C:\ Program Files.

你(像我一样)可能通过以下方式将你的makefile"调整"到#1上面:

MS_SDK_BASE_DOS := C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A
ENV_SET         := LIB="$(MS_SDK_BASE_DOS)\Lib\x64"
Run Code Online (Sandbox Code Playgroud)

但是,现在,您需要将调整更改为上面的#2,如下所示:

MS_SDK_BASE_DOS := C:\Program Files\Microsoft SDKs\Windows\v7.1
Run Code Online (Sandbox Code Playgroud)

(不要错过"v7.0A"到"v7.1"的变化.)