2010-10-13 149 views
2

我安装了VS2010,但发现intellisense无法正常工作。我看着网络,发现我不是唯一一个遇到这个问题的人。所以,我安装了VS2008,一切都很好。然后,我决定清理我的电脑,并删除VS2010,并立即开始在我的程序(新的和旧的)上得到这个错误。即使是一个简单的测试程序,它只有一个cout命令。我试图修复VS2008,并没有工作,所以我试图卸载,然后重新安装,仍然我得到同样的问题。LNK1104:无法打开文件'kernel32.lib'

我已经在网上查找这个问题,虽然我发现很多其他人遇到这个问题,它是不一样的。他们有其他外部引用的问题,而不是那些应该自动包含像kernel32和lib32等。

我也尝试了解决方案,为其他引用的一些人工作,我包括路径(有和没有引号),我KERNEL32目录,但我仍然得到了同样的问题,或者在某些情况下,我会得到

LNK1104:无法打开文件“C:\ WINDOWS \ system32.obj”

有和没有引号链接器配置。

任何人都可以请帮忙吗?

回答

0

我包括路径(带和不带引号),以我的KERNEL32目录

它看起来像你指着C:\Windows\System32这哪里是DLL可能,但是这不是其中的.lib文件会。

在VS 2010中,它可能类似的地方:

C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib 

我没有准备好进入VS2008说得清KERNEL32.LIB会直接默认该产品安装。

+0

好的,这样做更有意义,但我尝试过,并且我得到的错误现在只显示LNK1104:无法打开文件'C:\ Program Files \ Microsoft SDKs \ windows \ v5.0 \ lib.obj'我只有v6.0A,并且没有lib目录,只有一个bin – Geoff 2010-10-13 19:05:00

1

我认为你正在寻找的选项是-MT而不是-MD。我遇到了同样的问题。你会注意到,当你使用这个选项时,DLL的大小要大得多(包括依赖关系)

0

如果有人再次想到这个,我找到了适合我的解决方案。

在我的情况下,来自Win 7和/或防病毒排序软件的UAC拒绝访问kernel32.lib。作为管理员启动VS 2008后,为项目文件夹停用了病毒扫描。

0

我有这个问题,只是解决了它。我安装了SDK,但是,VCVARS32.bat找不到SDK,因此它默认为不存在的路径(安装了VS2008)。我强制这通过修改VCVARS32.bat(“C:\ Program Files文件(x86)\ Microsoft Visual Studio 9.0 \ Common7 \ Tools \ vsvars32.bat”,见13行):

11: @call :GetWindowsSdkDir
12:
*13: @SET WindowsSdkDir=C:\Program Files\Microsoft SDKs\Windows\v6.0A\
14:
15: @if not "%WindowsSdkDir%" == "" (

我不得不这样做,因为我安装了VS2008,VS2010和VS2012,因为我们大多数人可能会这样做,他们必须跨多个团队支持多个项目,因此更新全球任何东西(如实际的环境路径)都可能导致混合使用SDK版本。

相关问题