visual studio 2010 express + win sdk =无法打开输入文件'kernel32.lib'

时间:2012-03-22 11:51:00

标签: windows visual-c++ 64-bit linker-errors

我曾经使用VS2008 express和win SDK编译x64。最近重建了我的机器(升级到64位Windows 7)并安装了最新的快递。按照相同的步骤允许x64目标和我的源不再链接。 不管我做什么,我总是得到:

  

LINK:致命错误LNK1181:无法打开输入文件'kernel32.lib'

有趣的32位编译工作正常。

这是一个众所周知的问题吗?谷歌没有给我任何线索如何解决它只是提到同样的问题,但没有解决方案。

是否可以将VS 2010与win 7 SDK一起使用以定位64位?

感谢 的Pawel

5 个答案:

答案 0 :(得分:26)

最终解决方案很容易解决。诀窍是指出VS赢得SDK,由于某些原因在我的情况下是不正确的。  Project Properties -> VC++ Directories -> Library Directories应指向C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib\x64

答案 1 :(得分:12)

我找到的其他东西,也很简单,就是去Project Properties-> General并将Platform Toolset设置为Windows7.1SDK。不知道为什么会这样......

答案 2 :(得分:2)

我有同样的问题,这里的答案对我有帮助,但我必须做更多的事情。

有些东西破坏了我的Windows SDK安装,所以我错过了进入C:\ Program Files \ Microsoft SDKs \ Windows \ v7.1 \ Lib \的所有.lib文件(里面的x64文件夹没问题)。所以我按照here所说的内容重新安装了它。我可以将Platform Toolset设置为Windows7.1SDK(在VS2010和VS2013中)。

这是因为Platform Toolset更改了Visual Studio中的$(WindowsSdkDir)路径(保存的那些路径位于系统注册表中),如果找不到Kernel32.lib,这些路径就会被破坏。

答案 3 :(得分:1)

如果上述解决方案均无效。停下来做一个健全检查。我使用错误的-G配置字符串进行了刻录,它给了我这个误导性错误。

首先,从VS命令提示符而不是常规命令提示符运行。你可以找到它 Start Menu -> Visual Studio 2015 -> MSBuild Command Prompt for VS2015

这将设置VS工具的所有正确路径等。

现在看看cmake提供了哪些发电机......

cmake -help

...<snip>... The following generators are available on this platform: Visual Studio 15 [arch] = Generates Visual Studio 15 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files. Optional [arch] can be "Win64" or "IA64". ...

然后选择适当的字符串 添加了拱门。

mkdir _build cd _build cmake .. -G "Visual Studio 15 Win64"

在子目录中运行cmake可以更轻松地执行“清理”,因为您可以删除该目录中的所有内容。

我已升级到Visual Studio 15但未注意并且正在尝试为2012年生成。

答案 4 :(得分:0)

FWIW,当整个v8.1 SDK安装(文件+ reg键)进入AWOL时,我遇到了与Visual Studio 2013相同的问题,这可能是由安装Emborlandero RAD Studio引起的。

设置WindowsSdkDir环境变量无效,因为Studio本身(devenv.exe,通过Process Explorer检查的环境)和从vcvarsall.bat调用的批处理文件调用的批处理文件都被有效擦除该变量,因为他们找不到v8.1 SDK。

Visual Studio不允许以机器范围的方式配置特定于计算机的目录(建议将此计算机依赖项放入每个项目文件中,这是荒谬的)并重新安装v8.1 SDK是不可能及时的。在此期间让Studio再次工作的快速解决方法是在

下添加字符串值InstallationFolder
Software/Microsoft/Microsoft SDKs/Windows/v8.1/

与其v8.0堂兄的内容相同。这是在HKLM/Wow6432Node下,但普通HKLMHKCU也应该有效。

让Studio立即重新工作,甚至没有重启。