2017-07-21 84 views
1

我已经使用脱机安装程序qt-opensource-windows-x86-msvc2015_64-5.8.0安装了Qt。我已经使用C++构建工具安装了visual studio community edition 2017。因为它的编译器与qt版本不兼容,于是我从http://landinghub.visualstudio.com/visual-cpp-build-tools安装了visual C++构建工具2015。当我尝试编译一个项目时,它给出了一个错误:-1: error: LNK1158: cannot run 'rc.exe'。继承人如何我的Qt工具包的样子, enter image description hereQt 5.8 msvc 2015编译错误

enter image description here

有人能找出什么错误,以及如何解决它。 谢谢。

回答

1

如果你更新到Qt 5.9,它支持MSVC 2017.但是,如果你想让它与5.8一起工作,我相信你可能会错过Windows SDK。您可以从Microsoft下载适用于Windows 7,8或10的SDK,只需获取适合您的版本即可。

与一些谷歌上搜索,我发现一对夫妇的其他有些相关的解决方案here,& here的,我已经总结出他们下方起来:

如果你已经有了SDK或安装了它,它仍然没有按” t工作,似乎将rc.exe和rcdll.dll从WindowsSDK文件夹复制到MSVS安装\ VC \ bin文件夹可能会解决此问题。您也可以尝试将这两个相同的文件复制到Qt的\ Qt *版本号**编译器版本* \ bin。

+0

将这些复制到Qts bin工作。谢谢。 –

2

我已经在我自己的机器和几个同事机器上解决了这个问题。

当您同时安装了Visual Studio 2015和VS 2017时,它往往会发生。或者更确切地说,安装了多个版本的Windows SDK。发生这种情况时,vcvars32.bat脚本(位于Visual Studio安装目录中)不会正确地将资源编译器(rc.exe)的位置添加到PATH中。因此,Qt Creator的运行VCVARS32.BAT(如在选项 - Qt Creator中规定>构建&运行 - >编译器,但是对于Windows的SDK工具包中的工具目录没有正确添加到PATH环境。

简单解决方法是RC.EXE的相应版本添加到您的路径

在命令行中执行此操作。

cd "c:\program files(x86)" 
dir /s rc.exe 

你会得到几个版本(x86和x64)和的几个版本SDK。为与rc.exe相对应的版本添加rc.exe所在的路径,并为vcvars32.bat启动脚本构建风格。

例如:

PATH="C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x86";%PATH% 

重新启动Qt Creator的,这应该修复它。

对我而言,另一个解决方法是卸载Visual Studio的所有版本(以及SQL,Windows SDK,开发工具等的所有这些端安装)。重启。然后再次干净地安装VS 2017。然后干净地卸载并重新安装所有的Qt。这似乎对我有用。一个美好的方式来度过一个下午。

+0

谢谢。这清楚地解释了问题所在。问题出在msvc而不是qt。无论如何,这些缺点很难单独解决。再次感谢先生。 –