问题描述:使用qt version 5.12.0(qt creator version 4.8.1) ,使用编译器vs2015。

在新电脑使用vs或qt编译项目时。出现无法运行rc.exe。

原因,不同版本的vs 要求的windows sdk版本是不一样的vs安装过程中默认不勾选的windows sdk。如果电脑中现有的windows sdk版本与对应版本的vs要求的可选的windows sdk版本不符,就会出现这个错误。比如你电脑中默认的sdk版本最高版本为10.0.10133,而vs2015要求的可选的版本有10.0.14393/10.0.10586/10.0.10240,那vs安装后编译时就会出现这个问题。(需要注意,vs2013、vs2015、vs2019要求的sdk版本是有差异的,有可能你电脑中现有的sdk与对应的vs不匹配)最好是在安装vs的时候就勾选好一个最高版本的sdk,如下图所示。

可以在vs的安装过程中查看vs可选的windows sdk版本(或者windows sdk也可通过 控制面板->程序->程序和功能->visual studio 2015->更改->修改 中查看)。
也可以从Windows SDK 和模拟器存档 | Microsoft Developer 下载到对应的一个版本安装(windows sdk也可通过 控制面板->程序->程序和功能->visual studio 2015->更改->修改 安装,但是这个过程比较慢)。

至此,那个rc.exe 的问题就解决了。

至于ucrtxxxx.lib(universal c runtime)或头文件的问题,那应该是qt的配置的问题。qt中的windows sdk参数是不会自己动的(qt只在安装的时候获取最新的sdk),安装的时候获取到什么样就一直保存成什么样,如果先安装好了qt后再改动windows sdk,就需要手动更改qt中的windows sdk配置参数,如下:

这样qt就能正常使用vs编译器了。

问题处理过程(以下描述这个问题解决过程的经验,纯属废话):

该问题在之前工作中就碰到过,当时的解决办法是向网上说的直接拷贝rc.exe 到vs的目录下,但是感觉这不是一个规范的操作。并且也碰到过所有程序安装完就能正常跑的情况, 所以感觉应该是有什么操作过程出了问题。

首先在网上的拷贝操作让我感觉这个不是qt的问题,且查看一个qt工程中的 .qmake.stash ,Makefile ,Makefile.Debug 等文件,以及qt的配置中,都没有找到rc.exe的身影,所以猜测这个问题应该是与vs有关系。

在 控制面板\程序\程序和功能 ,对vs进行修复,还是如此。感觉可能与其中vs相关的程序有关系,第一眼看到了microsoft visual C++ 2015-2019 Redistributable这个东西,可能(盲目瞎猜)有关系(使用vs开发的C++ release 程序 需要用这个东西,它主要是在windows/system32 和windows/SysWOW64中安装msvcp140xxxx.dll库)。然后卸载,重装microsoft visual C++ 2015 Redistributable。还是如此,且打开了vs的一个实验程序,编译也没有问题。

然后在程序和功能中看到了Windows software development kit字样,看到已经安装了10.0.17763 ,猜测可能与windows sdk有关系 ,因为rc.exe就是windows sdk中的,且qt依赖windows sdk中的库、头文件、及cdb等工具。然后查看vs工程中是不是有修改sdk版本的,改成10.0.17763(这时候突然想起,qt中肯定一个地方是可以配置windows sdk版本的,确实是找到了)。出现了

这下就确定了,原来就是vs的原因。之前运行vs的工程没有问题,是一直没有注意 目标平台版本 ,一直是默认的8.1。改成10.0.17763问题就出来了。

然后猜测可能是vs关联依赖的windows sdk出问题了,首先做的不是修复,而是下载一个更新的,10.0.19041.0(基于新的东西肯定修复的bug更多的观点)。然后还是出现“无法运行rc.exe”。

又猜测,难道是vs安装出问题了?(此时偏离了sdk的想法了)控制面板\程序\程序和功能 vs,查看vs中是否有遗漏的东西没有安装好,又选择更改。然后进入我眼帘的是圈起来的部分,因看字 与c++最接近了,试一下,勾上,更新(要吐槽一下,vs的每一词这样的操作都是要一个小时左右,太坑)

一个小时过后,还是"无法运行rc.exe"。但是意外测试使用8.1版 sdk的还是能正常运行

然后猜测会不会是10.0.19041.0 不支持,且10.0.17763坏掉了。然后对10.0.17763进行一个修复,同时10.0.19041.0进行卸载,
再运行vs工程,出现了下面这个问题。

网上再找,说是sdk坏掉了。舍不得卸载。可能是我修复的方式出问题了,然后猜测会不会在vs安装的时候有sdk选项,又重新进到安装截面翻一遍。然后发现了下面这个。

对比一下我现有的版本10.0.17763,猜测,难道vs 2015 对 windows sdk的版本有要求?果断选了那个从名字中工具多一个的那个,且是里面最新的。一个小时后,配置vs的工程,选择 目标工作平台 10.0.14393 。

啊,清爽了。好了。rc.exe问题终于消失了。qt上测试,也是如此。

然后继续,配置vs工程 目标工作平台 10.0.17763,还是出现bemapiset.h的问题。又想着再试着安装一下10.0.19041.0。5分钟过后,10.0.19041.0的配置,也没有出现 “无法运行rc.exe”的错误。猜测10.0.17763 应该是被玩坏了,然后卸载了。

为了排查清楚vs是否与sdk版本有关系,然后卸载 windows sdk 10.0.14393。选用10.0.19041.0,问题果然又出现了,vs qt中都出现了。

然后在网上搜索是否vs的对windows sdk版本有要求。没有搜到有用信息,但是发现了windows sdk的下载路径。顺便将10.0.14393下载过来,安装,测试。运行成功。看来vs安装中的那个tools是没有用的。

同时单独测试10.0.10586,居然也能运行成功。10.0.10586 搭配10.0.19041.0。两者都能运行成功,卸载10.0.10586只剩下10.0.19041.0又失败。至此,确定了,vs2015对 windows sdk版本是有要求的。

然后再网上找,说是sdk出问题了

vs qt error: rc.exe 、ucrt.lib 、 ucrtd.lib windows sdk 版本相关推荐

  1. VS SDK更新问题(error MSB8036: 找不到 Windows SDK 版本10.0.14393.0)

    问题:error MSB8036: 找不到 Windows SDK 版本10.0.14393.0,此时会造成项目编译失败 解决办法:下载相应版本的SDK安装,然后修改VS关于SDK版本的配置 WIN1 ...

  2. 【错误记录】Flutter 构建报错 ( Error: Method not found: ‘CupertinoModalPopupRoute‘. | 下载最新 Flutter SDK 版本 )

    文章目录 一.报错信息 二.问题分析 三.解决方案 一.报错信息 参考 [Flutter]Flutter Gallery 官方示例简介 博客 ; Flutter Galley 开源项目运行时 , 部署 ...

  3. ERROR RC.EXE 已退出(退出代码01)解决方法

    这个报错一般是移动资源文件导致的. 在根目录找到rc文件,尝试vs打开,如果打不开,记事本打开,找到rc文件加载资源文件的脚本,删除即可.

  4. c语言编译后找不到exe,在VS 2015命令提示符中找不到c – rc.exe

    我刚刚安装了Windows 10 Creators Update(版本10.0.15063). 我安装了多个版本的Visual Studio(2012年,2013年,2015年和2017年).我几周前 ...

  5. VS报错:fatal error LNK1104: 无法打开文件“kernel32.lib”解决办法

    VS报错:fatal error LNK1104: 无法打开文件"kernel32.lib"解决办法 问题所在 解决方案一 解决方案二 问题所在 我使用VS是运行Fortran程序 ...

  6. 无法运行rc.exe(已解决)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 原因 解决 一:在C:\Program Files (x86)下搜索rc.exe 二:右击,打开找到的rc.exe的文 ...

  7. Qt: error lnk1158 无法运行rc.exe

    解决办法:(依据自己的环境而定) 将C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x64 目录下的rc.exe 和rcdll.dll ...

  8. Qt lnk1158 无法运行rc.exe 解决

    Qt: error lnk1158 无法运行rc.exe 今天运行Qt程序 ,在release模式出现 "error lnk1158 无法运行rc.exe". Qt版本:Qt 5. ...

  9. 关于 fatal error LNK1158: 无法运行“rc.exe” 的解决方法

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/110680001 各位读者,知识无穷而人力有穷 ...

最新文章

  1. bat 一键启动多个程序
  2. Werkzeug源码阅读笔记(四)
  3. 编写一个c程序的头文件
  4. c语言鼠标移动响应,CSS鼠标响应事件经过、移动、点击示例介绍
  5. 信息学奥赛一本通(1238:一元三次方程求解)
  6. 为什么作为开发人员面试完全是胡说八道
  7. SVN客户端与服务端安装详解
  8. 原反补移码的概念应用以及异或的作用
  9. java p=x,Java-Tutorial/20、javac和javap.md at master · allenchenx/Java-Tutorial · GitHub
  10. 陌陌宣布启用全新中文名“挚文集团” ,Q2净利润4.6亿元
  11. 沟通CTBS V5.0发布, 南北通及安全性成最大亮点
  12. 判断数组类型的4种方法
  13. 因式分解题目及过程_两道新定义题目的对比分析
  14. jmeter中build和jmeter-results-detail-report_30.xsl以及jmeter.results.shanhe.me.xsl
  15. 招聘笔试c语言题库,2014年腾讯校园招聘C语言笔试题含答案
  16. 计算机网络第三弹——数据链路层
  17. 一招教你表格里面给方框内打勾
  18. 数据库原理与应用(五)专门的关系运算
  19. 2019辽宁公务员考试行测常识大全:公务员常识40000问(五十九)(2)
  20. c++11 regex

热门文章

  1. web前端期末大作业:基于HTML+CSS+JavaScript制作我的音乐网站(带设计报告)
  2. 测试MBP的手写功能
  3. 视频教程-MMOARPG地下守护神_单机版实战视频课程(下部) -Unity3D
  4. AssertionError: Torch not compiled with CUDA enabled到底是什么原因
  5. Android图形显示系统(一)
  6. vs2019提示系统资源不足
  7. 手工设置Windows服务依赖关系
  8. 2022-2028全球与中国船用自动转向系统市场现状及未来发展趋势
  9. 六星教育python培训怎么样
  10. Linux命令详解之 mv