2012-03-22 257 views
19

我以前使用VS2008 express和win SDK编译为x64。最近重建了我的机器(升级到64位Windows 7)并获得了最新的快速安装。遵循相同的程序,以允许x64目标和我的来源不再链接。 不管我做什么,我总是得到:visual studio 2010 express + win sdk =无法打开输入文件'kernel32.lib'

LINK:致命错误LNK1181:无法打开输入文件“KERNEL32.LIB”

滑稽足够32位汇编工作正常。

这是一个很好的问题吗?谷歌没有给我任何线索如何解决这个问题,只是提到了几个同样的问题,但没有解决方案。

是否有可能使用VS 2010与胜利7 SDK目标64位?

感谢 帕维尔

回答

26

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

+4

你是我最喜欢的人在这个世界上。 :-) – kmort 2015-04-08 19:33:04

10

我发现的其他东西也很简单,就是转到Project Properties-> General并将Platform Toolset设置为Windows7.1SDK。想知道为什么这个工程...

+0

我在通用下面看不到“平台工具集” - 我只看到“输出目录”,“中间目录”,“配置类型”,“公共语言运行时支持”和“生成日志文件”。不过pawel的答案适用于我。 – meowsqueak 2013-01-23 00:07:51

+0

从VS 2013社区升级到2017社区时,此答案适用于我社区 – 2017-04-27 10:26:16

2

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

有些东西损坏了我的Windows SDK安装,所以我错过了进入C:\ Program Files \ Microsoft SDKs \ Windows \ v7.1 \ Lib \的所有.lib文件(x64文件夹内没有问题)。所以我跟着说的here并重新安装它。比我可以将平台工具集设置为Windows7.1SDK(在VS2010和VS2013中)。

这是因为Platform Toolset更改Visual Studio中的$(WindowsSdkDir)路径(保存在系统注册表中的那些路径),如果找不到Kernel32.lib,则该路径会中断。

+1

感谢您编辑@Matthieu。 我试过的其他东西是安装VS2010 Express,这样我就可以将Platform Toolset设置为VS100而不是Windows7.1SDK - 这也适用于我。我这样做是因为我的团队中的其他人正在使用此设置,并且我们希望稍后避免冲突。 – 2015-05-19 22:10:35

0

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

设置WindowsSdkDir环境变量有没有影响,因为这两个工作室本身(devenv.exe,环境通过Process Explorer的检查),并从vcvarsall.bat称为批处理文件称为批处理文件删除有效的变量,因为他们无法找到V8。 1 SDK。

Visual Studio不允许以机器范围的方式配置特定于机器的目录(建议将此机器依赖项放到每个项目文件中都是荒谬可笑的),并重新安装v8.1 SDK无法及时完成。速战速决拿到工作室在此期间再次合作是具有相同的内容作为其表弟V8.0下

Software/Microsoft/Microsoft SDKs/Windows/v8.1/ 

添加字符串值InstallationFolder。这是在之下,但普通HKLMHKCU也应该工作。

这使Studio再次立即工作,甚至没有重新启动。

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年生成。

相关问题