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版本的方案来解决这个问题,解决思路如下。
我的开发机器环境
- 已安装Visual Studio 2015
- 已安装Qt Creator
- 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了。
总体思路
- 从Qt Creator工程的环境变量中定位 Windows Kits版本信息
- 复制对应的rc和rcdll到Qt目录下对应的构建套件的bin目录中
转载请注明:悠然品鉴 » Windows 下Qt Creator构建错误:-1: error: LNK1158: 无法运行“rc.exe” 的问题