30

自从我在 Visual C++ 2010 Express 编译器上安装了用于 64 位编程的 .NET Framework SDK 以来,我就一直遇到这个错误。由于我遇到的这个错误,我什至无法编译一个简单的程序。我的平台是x86。如果有帮助,这是一个快照:

在此处输入图像描述

我不知道还能说什么。我昨天刚下载了这个编译器,它工作正常。我想从 32 位编程升级到 64 位,这样我就可以使用 Assembly,所以我下载了这个SDK。我在谷歌上搜索过,甚至在 Stackoverflow 上搜索过。谷歌并没有太大帮助,但我在这里找到了一个看起来与我相似的帖子,但答案并没有多大公正。有谁知道为什么会发生此错误以及如何摆脱它?

4

13 回答 13

19

检查 VC++ 目录,在 VS 2010 中,这些可以在您的项目属性中找到。检查是否$(WindowsSdkDir)\lib包含在目录列表中,如果没有,请手动添加。如果您正在为 X64 平台构建,您应该从“平台”组合框中选择 X64,并确保它$(WindowsSdkDir)\lib\x64包含在目录列表中。

于 2013-02-24T15:59:38.470 回答
18

将平台工具集更改为:项目属性->配置属性->通用下的“Windows7.1SDK”

于 2014-02-24T22:34:59.640 回答
6

确保您在 VC++ 目录中(右键单击项目,单击属性页),

  • 包含目录:$(IncludePath)
  • 列出项目库目录:$(LibraryPath)
于 2013-09-15T19:28:58.113 回答
5

仅适用于命令行(即-makefile)用户:

  1. 安装 VC++ Express 时,它只是 32 位的。所以,事情进入C:\Program Files (x86)
  2. 然后,您决定升级到 64 位功能。因此,您安装了 SDK。但它支持 64 位。所以,事情进入C:\Program Files

您(像我一样)可能通过以下方式将您的makefile“调整”到上面的#1:

MS_SDK_BASE_DOS := C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A
ENV_SET         := LIB="$(MS_SDK_BASE_DOS)\Lib\x64"

但是,现在,您需要将调整更改为上面的 #2,如下所示:

MS_SDK_BASE_DOS := C:\Program Files\Microsoft SDKs\Windows\v7.1

(也不要错过从“v7.0A”到“v7.1”的变化。)

于 2014-01-09T19:23:59.430 回答
3

在 project->properties->Configuration Properties->VC++ Directories -> Library 目录中添加 WindowsSdks 的 lib 路径。

我添加了以下路径并且错误出现::

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib;

我的系统是Win-7, 64bit, VS 2013, .net framework 4.5

于 2016-07-04T07:12:28.823 回答
2

我遇到了类似的错误,当我检查项目属性中的“链接器 -> 输入 -> 附加依赖项”列表时,问题停止了。我错过了一个分号“;” 就在“%(AdditionalDependencies)”之前。我也有两次相同的条目。您应该为 Debug 和 Release 分别编辑此列表。

于 2013-11-20T04:34:09.843 回答
2

我在使用 Visual Studio 2017 的 Windows 10 上遇到了不同的问题,但效果相同。我认为我的问题归结为 VS 被安装到“C:\”以外的驱动器上。我通过重新安装Windows 10 SDK解决了这个问题

首先我必须卸载 Windows SDK(安装了两个版本)。然后运行可执行文件。安装后,运行visual studio,它工作正常。

于 2017-04-08T15:03:07.207 回答
1

我刚刚遇到并自己解决了这个问题。我的问题有点不同。我在 Windows 10 上使用 Visual Studio。当我创建项目时,它Target Platform Version被自动设置为10.0.15063.0. 但是kernel32.lib这个版本的SDK没有,其他必要的头文件和lib文件也没有。所以我修改Target Platform Version8.1. 它奏效了。

环境

  • 视窗 10
  • 视觉工作室 2015
  • 视觉 C++

解决方案

  1. 打开项目的Property Page;
  2. 导航到General页面;
  3. 修改Target Platform Version为所需的目标平台(例如8.1)。
于 2018-06-25T05:36:42.860 回答
0

在此处输入图像描述

gero 的解决方案对我有用。
在 Visual Studios 2012 中,执行以下步骤。
- 转到解决方案资源管理器
- 右键单击​​您的项目
- 转到属性
- 配置属性 -> 常规
- 平台工具集 ->更改为 Windows7.1SDK

于 2015-04-10T13:21:05.370 回答
0

如果上述解决方案不起作用,请检查属性->VC++ 目录->库目录中是否有$(LibraryPath)。如果您缺少它,请尝试添加它。

于 2015-12-11T05:16:20.640 回答
0

操作系统:Win10、Visual Studio 2015

解决方法:进入控制面板--->卸载程序---MSvisual studio ---->更改---->组织=修复

并修复它。请注意,您必须连接到互联网,直到修复完成。

祝你好运。

于 2016-12-07T06:43:09.063 回答
0

今天在 Visual Studio 2017 中,我遇到了同样的问题。

就我而言,原因是 NETFXSDKDir ( NETFXSDKDir=C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1) 中的环境设置不佳。它需要改为NETFXSDKDir=C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\um\x86。具体来说,在这个批处理文件(我的目录实际上有 4 个不同的文件)中为 VS2017 的命令提示符设置:

%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars32.bat"

因为我不愿意更改其中一个“已安装”批处理文件……甚至更多,因为该批处理文件又调用了另一个:

@call "%~dp0vcvarsall.bat" x86 %*

...而不是对于我特定的 C++ 命令行应用程序,我只是添加了显式路径文本:;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\um\x86对于“库目录”中的总字符串,如下所示:$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);$(NETFXKitsDir)Lib\um\x86;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\um\x86. (右键单击项目,属性→配置属性→VC++目录→库目录。)这解决了我的“致命错误LNK1104:无法打开文件'kernel32.lib'”错误。我在这个 GitHub 问题中找到了这个提示。

请注意,这在 Visual Studio 2017 Enterprise 2017 版本 15.1 (26403.0) 中是可重现的,即使在成功“修复”安装之后……在创建新的 Visual C++ Win32 控制台应用程序并尝试编译时。

事实上,除非创建了一个空白应用程序,否则默认模板还包括对<SDKDDKVer.h>我得到这个附加错误的引用:Error (active) E1696 cannot open source file "SDKDDKVer.h". 所以我创建了一个空的 C++ 项目

于 2017-04-09T23:11:18.030 回答
0

Visual Studio 2017中,我转到Project Properties -> Configuration Properties -> General,Selected All Platforms (1) ,然后选择Windows SDK Version下的下拉列表(2)并从10.0.14393.0更新为已安装的(3) . 对我来说,那是10.0.15063.0。

在此处输入图像描述

其他详细信息:这更正了我的错误,因为 Windows SDK 版本帮助 VS 选择正确的路径。VC++ 目录-> 库目录 ->编辑->-> 显示宏$(WindowsSDK_LibraryPath_x86)具有上面选择的版本号的路径。

于 2017-08-30T15:37:32.900 回答