我曾经使用VS2008 express和win SDK编译x64。最近重建了我的机器(升级到64位Windows 7)并安装了最新的快递。按照相同的步骤允许x64目标和我的源不再链接。 不管我做什么,我总是得到:
LINK:致命错误LNK1181:无法打开输入文件'kernel32.lib'
有趣的32位编译工作正常。
这是一个众所周知的问题吗?谷歌没有给我任何线索如何解决它只是提到同样的问题,但没有解决方案。
是否可以将VS 2010与win 7 SDK一起使用以定位64位?
感谢 的Pawel
答案 0 :(得分:26)
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
下,但普通HKLM
或HKCU
也应该有效。
让Studio立即重新工作,甚至没有重启。