我在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值的实时预览。如果您需要其他或更专业的值,请单击“宏”按钮以查找更多选项。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句