错误LNK1181:无法打开输入文件'kernel32.lib'
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误LNK1181:无法打开输入文件'kernel32.lib'相关的知识,希望对你有一定的参考价值。
我在VS 2012上有一个项目。最新的SDK安装在WIN 8 x64计算机上,该项目的目标是WIn32。
我在Debug中有一个干净的构建,但是当我去发布时,我得到了1181 LNK错误 - 无法打开输入文件kernel32.lib。
我在计算机上有几个位置的文件,在VC目录中有$(WindowsSdkDir_71A)lib和$(WindowsSdkDir) lib。
使用进程监视器我试图重建并查看devenv.exe在哪里查找该文件
**更新:在调试中,它看起来在正确的位置。在发布中它不寻找sdk,但我看到了这个:
Y: MyProjectFofler $(LibraryPath) kernel32.lib PATH NOT FOUND以及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 ++目录 - >库目录部分,可以单击输入行并选择“编辑”,然后您可以观看将评估和解析的宏值的实时预览。如果您需要其他或更专业的值,请单击“宏”按钮以查找更多选项。
Link to image of Visual Studio 2017 Library Directories configuration
以上是关于错误LNK1181:无法打开输入文件'kernel32.lib'的主要内容,如果未能解决你的问题,请参考以下文章
如何解决 LINK:致命错误 LNK1181:无法打开输入文件 'vtkCommonCore-9.0.lib'
链接:致命错误 LNK1181:无法打开输入文件“libclamav.lib”
致命错误 LNK1181:无法打开不是依赖项的输入文件“XXX.lib”