QT使用MSVC2015编译器编译时提示“-1: error: LNK1158: 无法运行“rc.exe”

前言:之前一直使用qt5的MinGW 32bit写软件,由于近期需要使用vld检查内存泄漏问题,改用MSVC2015 32bit编译器调试程序。因此我重新安装了QT5,使用的版本为qt-opensource-windows-x86-5.11.1.exe

需要注意的是,我已成功安装VS 2015,若没有安装VS2015使用以下步骤是否会成功,我暂时没试过,感兴趣的朋友们可以试试。

1、安装教程可参考:http://c.biancheng.net/view/3858.htmlhttps://blog.csdn.net/cfan927/article/details/98115783。选择的组件如下图所示(蓝色三角为我安装时选择的组件,PS:自己安装的时候忘记截图了,盗用以下别人的,介意的话可联系我,我一定删,嘿嘿)

QT使用MSVC2015编译器编译时提示“-1: error: LNK1158: 无法运行“rc.exe”

2、QT5 安装完成后,MSVC构建组件带有黄色的感叹号,表示没有安装对应的调试器,所以需要自己下载SDK并安装,SDK下载地址我使用的是:https://developer.microsoft.com/zh-cn/windows/downloads/sdk-archive/,下载的版本下图所示:

QT使用MSVC2015编译器编译时提示“-1: error: LNK1158: 无法运行“rc.exe”

在安装过程中,直接按提示进行下一步,下一步就可以了。需要注意的是,我在“Select the features you want to install”页中将复选框全部选中了,但网上的教程仅仅选中"Debugging Tools for Windows"选项,感兴趣的朋友可自行查看原因,当前时间紧迫,我就先不查了,嘿嘿。

 QT使用MSVC2015编译器编译时提示“-1: error: LNK1158: 无法运行“rc.exe”

3、SDK安装完成后,打开QT Creator, 打开"选项“设置页面(打开路径:“工具T”-》“选项”),进行如下配置:

QT使用MSVC2015编译器编译时提示“-1: error: LNK1158: 无法运行“rc.exe”

4、配置完成后,我直接新建一个项目,试图构建,发现构建不成功,提示“-1: error: LNK1158: 无法运行“rc.exe” ”。于是上网查资料,首先查到的资料是:https://blog.csdn.net/qq_28482225/article/details/106990948,我按照流程1的方法,查看自己电脑的sdk版本号,发现自己的版本如下图所示,一番对比,发现对不上,然后去SDK的下载地址,发现也没有对应的SDK下载,当时整个人都不好了。请求同事将我们已配好的电脑上的相关版本发给我看,发现那个笔记本上的SDK版本号是能对应上的,我都快要*放弃了(昨天就开始弄这个东西,不过昨天是配置QTxlsx,今天才捕获到无法配置好的根本原因是我的MSVC调试器就没配好,我差点当场去世,23333~,所以在此强烈建议,在某个源码无法构建成功的时候,强烈建议先新建一个啥都没有的工程构建,如果这个工程都无法构建成功,最起码我们可以缩小排查范围。我昨天一直怀疑是我的QTXlsx环境没配好,一把辛酸泪并进入深刻的自我检讨中~)。

QT使用MSVC2015编译器编译时提示“-1: error: LNK1158: 无法运行“rc.exe”

为了我的饭碗,我强制让自己原地复活。我复制了“C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86”目录中的“ rc.exe rcdll.dll”这两个文件到“C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin”中。 (注意版本号,因为我是32位的所以才选择X86,之所以选择“Microsoft Visual Studio 12.0”而非“Microsoft Visual Studio 14.0”是应为我的“C:\Program Files (x86)”目录里最好的就是“Microsoft Visual Studio 12.0”)。

QT使用MSVC2015编译器编译时提示“-1: error: LNK1158: 无法运行“rc.exe”

 QT使用MSVC2015编译器编译时提示“-1: error: LNK1158: 无法运行“rc.exe”

最后按教程所示,将拷贝如我刚刚拷贝的 rc.exe rcdll.dll所在路径添加到系统环境变量path中,是在C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86中,即将该路径添加到系统环境变量Path中,如下图所示:

QT使用MSVC2015编译器编译时提示“-1: error: LNK1158: 无法运行“rc.exe”

最后,我重启了QT,重新编译发现编译通过。 感谢热爱分享知识的朋友们,感谢不屈不挠的自己,我总算是编译通过了,阿门~