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

error LNK1181: cannot open input file 'kernel32.lib'

本文关键字:文件 lib kernel32 输入 LNK1181 错误      更新时间:2023-10-16

我有一个关于VS 2012的项目。 最新的SDK安装在WIN 8 x64计算机上,该项目面向WIn32。

我在调试中有一个干净的构建,但是当我去发布时,我收到 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(

请注意,$(LibraryPath( 值将包括额外的值,例如从父母那里继承的值,据我所知,这是一个冗长的选项。我的文件夹项目包含一个名为">lib"的文件夹,这就是为什么我在分号之前有第一个值的原因。

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

$(VC_LibraryPath_x86)
$(WindowsSDK_LibraryPath_x86)
$(NETFXKitsDir)Libumx86

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

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