总有人间一两风,填我十万八千梦

Windows 下Qt Creator构建错误:-1: error: LNK1158: 无法运行“rc.exe” 的问题

软件技巧 Zero、J 2661℃ 0评论

Windows 下 Qt Creator使用MSVC构建套件时显示 error: LNK1158: 无法运行“rc.exe”,这个原因是Qt Creator并不知道我们的rc.exe文件位置所引起的。

网上查找资料有很多说将rc.exe 和rcdll.dll拷贝到 [QtCreator安装目录]\[Qt版本号]\[构建套件版本]\bin 和 VS目录 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\  下,这种方法也能够解决rc.exe找不到的问题。但是在我们的电脑上可能会有多个Windows Kits版本(比如我的就有多个),此时也就有可能对应多个rc.exe文件,这里我们给出一种查找对应Windows Kits版本的方案来解决这个问题,解决思路如下。

我的开发机器环境

  1. 已安装Visual Studio 2015
  2. 已安装Qt Creator
  3. Windows 10 Pro x64

查看当前Qt Creator所用的MSVC构建套件所使用的Windows Kits版本信息

打开 Qt Creator,任意新建一个工程,在套件选择的界面中可以看到这里探测到了我的MSVC2015,这里我只选择MSVC2015 64bit这个套件,如图1所示。

工程创建完毕之后,我们进行构建操作,可以发现此时显示出了错误信息 error: LNK1158: 无法运行“rc.exe”

此时我们点击 左侧的 项目,然后找到我们所使用的构建套件下的Build,并将构建环境详情展开,如图所示。

从环境变量列表中可以看到,这里有很多环境变量信息,有些环境变量是系统中已经存在的,有些是Qt Creator所添加的。这里我们着重关注 下面2个环境变量

  • WindowsSdkDir
  • WindowsSDKVersion

在我的计算机中,环境变量 WindowsSdkDir 对应的是 C:\Program Files (x86)\Windows Kits\10\ ,表示当前的WindowsSDK的目录,环境变量WindowsSDKVersion 对应的是 10.0.18362.0\ ,从这连个内容我就可以知道Qt 在这个构建套件下所需要的rc.exe文件应该是  C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\ ,我们进入这个目录查看一下,如图所示。

这里有一个arm、arm64和x86、x64,这里我们只需要关注x86和x64即可,例如这里我们工程用的是MSVC2015 x64构建套件,所以我们进入到x64目录下找到rc.exe和rcdll.dll这俩文件,将其拷贝到

[QtCreator安装目录]\[Qt版本号]\[构建套件]\bin  这个目录下即可,我的电脑上的对应目录是 D:\Applications\QtCreator\5.12.2\msvc2015_64\bin ,如图所示,是拷贝后的结果。

拷贝完成之后,再次回到我们的Qt Creator中进行构建,就可以发现此时已经OK了。

总体思路

  1. 从Qt Creator工程的环境变量中定位 Windows Kits版本信息
  2. 复制对应的rc和rcdll到Qt目录下对应的构建套件的bin目录中

转载请注明:悠然品鉴 » Windows 下Qt Creator构建错误:-1: error: LNK1158: 无法运行“rc.exe” 的问题

喜欢 (5)or分享 (0)
发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址