fatal error RC1015: cannot open include file 'winres.h'解决方案

本文介绍了解决Visual Studio中由于默认开发平台的SDK和工具集未安装而导致的编译错误的方法。通过正确设置Windows SDK和平台工具集的版本,可以确保项目的顺利编译。

参考

步骤: 项目——属性——配置属性——常规

  • 改之前的版本信息如下:
    在这里插入图片描述
  • 然后对Windows SDK和和平台工具集两栏的版本号进行选择,选择当你VS使用的版本即可,如下图所示:
    在这里插入图片描述
  • 造成这种错误主要原因是:VS会默认原始开发平台的SDK和工具集,你没有安装,自然无法正常编译。
在使用 Visual Studio 打开 MFC 项目时,遇到 `fatal error RC1015: cannot open include file 'winres.h'` 的错误,通常与项目资源编译器(RC)无法找到系统头文件有关。以下是可能的原因及对应的解决方案: ### 原因分析 1. **Windows SDK 版本不兼容** 老版本的 MFC 项目可能依赖旧版 Windows SDK,而新版本的 Visual Studio 默认使用较新的 SDK,导致资源编译器无法找到 `winres.h` 或 `afxres.h` 等头文件。 2. **MFC 支持未正确安装** Visual Studio 的某些版本(如 VS 2017、VS 2019)默认不包含完整的 MFC 开发环境,需要手动安装 MFC 工作负载或组件。 3. **资源文件(.rc)路径或配置错误** 项目中的 `.rc` 文件可能引用了错误的头文件路径,或者项目属性中未正确配置资源编译器的包含路径。 --- ### 解决方案 #### 1. 安装 MFC 支持组件 确保在 Visual Studio 安装过程中勾选了 **“使用 MFC 的桌面开发”** 工作负载。如果没有安装,可以通过 Visual Studio Installer 添加该组件: - 打开 **Visual Studio Installer** - 选择当前安装的 Visual Studio 版本 - 点击 **“修改”** - 在工作负载中勾选 **“使用 MFC 的桌面开发”** - 完成安装后重启 Visual Studio [^3] #### 2. 更改 Windows SDK 版本 老项目可能依赖旧版本的 Windows SDK,可以在项目属性中更改 SDK 版本: - 右键项目 → **属性(Properties)** - 在 **“常规(General)”** 页中找到 **“Windows SDK 版本(Windows SDK Version)”** - 选择与项目兼容的旧版本(如 10.0.17134.0) - 应用更改并重新生成项目 [^4] #### 3. 检查资源文件的包含路径 如果 `winres.h` 文件确实存在但无法被找到,可以手动添加其路径到资源编译器的包含目录中: - 打开项目属性页 - 选择 **“资源器(Resource File)” → “常规(General)”** - 在 **“附加包含目录(Additional Include Directories)”** 中添加 SDK 的 `Include` 路径,例如: ``` C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\um ``` - 确认路径中包含 `winres.h` 文件 [^1] #### 4. 替换或修复头文件内容 某些情况下,`winres.h` 或 `afxres.h` 文件可能被错误修改或损坏。可以尝试以下操作: - 删除现有 `winres.h` 文件(备份后操作) - 从其他正常项目中复制该文件 - 或者从 SDK 安装目录中重新获取该文件 [^2] #### 5. 更新或迁移项目 如果项目是 N 年前的旧项目,建议考虑进行项目迁移: - 使用 Visual Studio 的项目迁移向导 - 更新项目平台工具集(Platform Toolset) - 升级 MFC 库版本(如使用静态链接改为动态链接) --- ### 示例:修改 SDK 版本的 CMake 配置(适用于 CMake 项目) ```cmake set_property(TARGET YourTarget PROPERTY VS_WINDOWS_TARGET_PLATFORM_VERSION "10.0.17134.0") ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值