繁体   English   中英

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

[英]error LNK1181: cannot open input file 'kernel32.lib'

我在VS 2012上有一个项目。WIN 8 x64计算机上安装了最新的SDK,该项目的目标是WIn32。

我在Debug中有一个干净的版本,但是当我发布该版本时,出现了1181 LNK错误-无法打开输入文件kernel32.lib。

我在计算机上的几个位置都有文件,并且在VC目录中有$(WindowsSdkDir_71A)lib和$(WindowsSdkDir)\\ lib。

使用进程监视器,我尝试重建并查看devenv.exe在哪里寻找文件

**更新:在调试中它看起来在正确的位置。 在发行版中,它不会寻找sdk,但我看到了这一点:

Y:\\ MyProjectFofler \\ $(LibraryPath)\\ kernel32.lib路径未找到,还从win8.0 sdk成功读取了几次(应该可以,但结果是相同的,我需要从V7读取)。 1A SDK文件夹...)

可能是什么,此错误的解决方案可能是什么?

谢谢。

我在使用Visual Studio 2017时遇到了这个问题。我试图获取Visual Studio项目配置以引用所需的外部库.lib文件。 当我删除对系统库的任何引用时,我设法触发了此错误。 后来我发现可以通过包含它们的宏值之一来纠正此问题(尽管您可以指定绝对的直接路径,但这可能不是最佳的编码约定,并且容易发脆)。

在Visual Studio项目上,右键单击“解决方案资源管理器”面板中的项目项(不是最顶部的“解决方案本身”),然后选择“属性”。 从那里执行以下操作:

VC ++目录->库目录$(ProjectDir)lib; $(图书馆路径)

请注意,$(LibraryPath)值将包括额外的值,例如从父级继承的值,从我可以看出这是一个冗长的选项。 我的文件夹项目包含一个名为“ lib ”的文件夹,这就是为什么我在分号之前拥有第一个值的原因。

我还使用了其他常用选项来指定“库目录”值:

$(VC_LibraryPath_x86)
$(WindowsSDK_LibraryPath_x86)
$(NETFXKitsDir)Lib\um\x86

如果查看VC ++目录->库目录部分 ,则可以单击输入行并选择' Edit ',然后可以观看将评估和解析为哪些Macros值的实时预览。 如果需要其他或更专业的值,请单击“ 宏”按钮以查找更多选项。

链接到Visual Studio 2017库目录配置的图像

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM