VS BUG(6) LINK : fatal error LNK1158: 无法运行“rc.exe”

  • 前言
  • [一. BUG提示](#一. BUG提示)
  • [二. 分析解决](#二. 分析解决)
  • [三. 小结](#三. 小结)

前言

程序员难免要与BUG打交道,本系列将记录自己在VS平台下代码调试过程中遇到的一些BUG,希望对大家遇到相关问题时,可以提供帮助。这个是最近经常遇到的一个比较简单的链接器问题,每次配置都出现这个

一. BUG提示

cpp 复制代码
1>------ 已启动全部重新生成: 项目: project1, 配置: Debug x64 ------
1>  Moc'ing project1.h...
1>  Uic'ing project1.ui...
1>  Rcc'ing project1.qrc...
1>  moc_project1.cpp
1>  main.cpp
1>  project1.cpp
1>  正在生成代码...
1>  qrc_project1.cpp
1>LINK : fatal error LNK1158: 无法运行"rc.exe"
========== 全部重新生成: 成功 0 个,失败 1 个,跳过 0 个 ==========

二. 分析解决

在进行qt的工程开发应用中,调试时出现上述报错。初步分析应为链接错误,但经找到对应的rc.exe文件路径后,复制该路径添加到包含目录以及运行目录,均仍报错

查询资料发现可尝试在

cpp 复制代码
1>------ 已启动全部重新生成: 项目: project1, 配置: Debug x64 ------
1>  Moc'ing project1.h...
1>  Uic'ing project1.ui...
1>  Rcc'ing project1.qrc...
1>  moc_project1.cpp
1>  main.cpp
1>  project1.cpp
1>  正在生成代码...
1>  qrc_project1.cpp
1>  project1.vcxproj -> D:\HIT\2025\202504\20250407-20250412\2_DY\project1\x64\Debug\project1.exe
========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========

本工程是基于VS2015进行应用,首先右键项目-》属性-》链接器-》清单文件-》将"是"更改为"否",再进行生成调试,中如下图所示

运行成功,问题解决。

三. 小结

rc.exe是Windows SDK中的一个工具,用于生成资源文件(.res)。这些资源文件通常包含应用程序的图标、菜单、对话框等。在Visual Studio 2015的C++项目构建过程中,rc.exe会被调用来编译资源文件(.rc)为资源二进制文件(.res),然后这些资源文件会被链接到最终的可执行文件中。

在使用Qt开发上位机应用程序时,Qt有自己的资源管理系统。Qt使用.qrc文件来管理资源,这些文件在构建过程中由Qt工具处理,而不是使用VS的rc.exe。

当项目同时配置了VS的资源编译系统和Qt的资源管理系统时,可能会出现冲突。具体来说,VS的构建系统可能会尝试使用rc.exe编译.rc文件,但由于某些原因(如路径问题、文件缺失等),rc.exe无法正常运行,从而导致构建失败。

将生成清单中的"是"改为"否",实际上可能是禁用了VS默认的资源编译系统,转而完全依赖Qt的资源管理系统。这样,构建过程将不再尝试调用rc.exe,从而避免了无法运行的问题。希望本文可以帮助到大家解决这个BUG。

相关推荐
6Hzlia几秒前
【Classic 150 刷题计划】 LeetCode 205. 同构字符串 | C++ 双向绑定与哈希表映射
c++·算法·leetcode
神仙别闹6 小时前
基于 C++ 实现(控制台)学生成绩管理系统
开发语言·c++
会周易的程序员6 小时前
5 节点边缘冗余方案(上):基于 aiRaft 的物联网高可用控制面设计
c++·分布式·物联网·raft·iot·共识
qq_199886879 小时前
第6板块·第4节:构建系统与多文件项目
c++·人工智能·gpu算力
汉克老师11 小时前
GESP2026年9月认证C++三级( 第三部分编程题(2、分割字符串))精讲
c++·gesp·小学生·学c++编程
估值探索者11 小时前
【Python量化系统工程化 #08】关了 SSH 就停?systemd 让脚本开机自启 + 异常自动拉起
java·c++·人工智能·分类·数据挖掘
天若有情67311 小时前
C++花式魔改!手写头文件复刻Java语法,彻底打破编码思维定式
java·c++·语言做语言·jac++
qq_1998868711 小时前
第7板块·第3节:CUTLASS 的 GEMM 实现与优化策略
c++·人工智能·gpu算力·cuda
hetao173383712 小时前
2026-09-17 hetao1733837 的刷题记录
c++·算法
shada13 小时前
Boost.Process v2 在旧内核上报 `assign: Bad file descriptor`
c++