【问题标题】:Qt 5.8 msvc 2015 compile errorQt 5.8 msvc 2015 编译错误
【发布时间】:2017-07-21 02:54:59
【问题描述】:

我已经使用离线安装程序qt-opensource-windows-x86-msvc2015_64-5.8.0 安装了 Qt。我安装了带有 c++ 构建工具的 Visual Studio 社区版 2017。因为它的编译器与 qt 版本不兼容,所以我从http://landinghub.visualstudio.com/visual-cpp-build-tools 安装了 visual c++ build tools 2015。当我尝试编译一个项目时,它给出了一个错误:-1: error: LNK1158: cannot run 'rc.exe'。这是我的qt套件的样子,

谁能弄清楚错误是什么以及如何解决它。 谢谢。

【问题讨论】:

    标签: visual-studio qt


    【解决方案1】:

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

    当您同时安装了 Visual Studio 2015 和 VS 2017 时,往往会发生这种情况。或者更准确地说,安装了多个版本的 Windows SDK。发生这种情况时,vcvars32.bat 脚本(位于 Visual Studio 安装目录中)不会正确地将资源编译器 (rc.exe) 的位置添加到 PATH。因此,QT Creator 运行 vcvars32.bat(在 Qt Creator 中的 Option->Build&Run->Compilers 中指定,但 Windows SDK Kit 的工具目录未正确添加到 PATH 环境中。

    简单的解决方法是将适当版本的 RC.exe 添加到您的路径中。

    从命令行执行此操作:

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

    您将获得多个版本(x86 和 x64)以及 SDK 的多个版本。为与 SDK 对应的版本添加 rc.exe 所在位置的 PATH,并为您的 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。这似乎对我有用。度过一个下午的绝妙方式。

    【讨论】:

    • 谢谢。这清楚地解释了问题所在。问题出在 msvc 而不是 qt 中。无论如何,这些故障很难单独弄清楚。再次感谢先生。
    • 谢谢!安装新的 Windows 10 SDK 破坏了我的 Qt 5.9.6 MSVC 2015 32 位 IDE 调试和资源编译。现在一切都很好!
    【解决方案2】:

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

    通过谷歌搜索,我发现了一些其他相关的解决方案here,&here,我将它们总结如下:

    如果您已经获得或安装了 SDK,但它仍然无法工作,则将 rc.exe 和 rcdll.dll 从 WindowsSDK 文件夹复制到您的 MSVS 安装 \VC\bin 文件夹可能会解决问题.您也可以尝试将这两个文件复制到 Qt 的 \Qt*version number**compiler version*\bin。

    【讨论】:

    • 非常感谢您提供的解决方案!我只需要用谷歌搜索正确的东西就可以找到它。解决了我的问题。再次感谢。