如何让QtLinguist随Qt 5.9.1一起运行?

时间:2017-06-30 17:52:43

标签: windows qt visual-studio-2017 qt-creator qt5.9

目标:使用 lupdate 生成/更新Qt小部件应用的* .ts文件。

设定:

  • Windows 7 Pro 64(在Windows 10 Home上也尝试过)
  • Qt 5.9.1 64位msvc2017的预备组件,
  • 2017年Visual Studio社区。

问题:我已经从 QtCreator 运行 lupdate ,以及从控制台手动运行 lupdate ,但两种情况都无法运行。消息是:

  

启动外部工具   " C:\ Qt的\ Qt5.9.1 \ 5.9.1 \ msvc2017_64 \ BIN \ lupdate.exe"   C:/Documents/Projects/untitled1/untitled1.pro警告:项目错误:   无法运行编译器' cl'。也许你忘了设置环境了?

     

" C:\ Qt的\ Qt5.9.1 \ 5.9.1 \ msvc2017_64 \ BIN \ lupdate.exe"完成

否则项目编译,运行和调试没有套件问题:桌面Qt 5.9.1 MSVC2017 64位(默认),这就是我认为环境设置正确的原因起来。

我无法找到有关此问题的任何信息。任何想法如何使 lupdate 工作?

编辑:我正在添加当前设置的屏幕截图(由Qt安装程序制作)以试图说明我认为环境设置正确的原因:

试剂盒

cmake配置

3 个答案:

答案 0 :(得分:9)

解决方案

根据问题中的评论中 nm 提供的信息和建议,我找到的解决方案(相当黑客,但不是太多):< / p>

  1. 使用以下单行内容创建 translate.bat

    &#34;%programfiles(x86)%\ Microsoft Visual Studio \ 2017 \ Community \ VC \ Auxiliary \ Build \ vcvars64.bat&#34; &安培; lupdate.exe%1

  2. 并将其放在%{CurrentProject:QT_INSTALL_BINS}下(在我的情况下为C:\Qt\Qt5.9.1\5.9.1\msvc2017_64\bin)。确保 translate.bat 包含计算机上 vcvars64.bat 的正确路径。如果需要,您也可以放置另一个版本的 vcvars

    1. Qt Creator 中选择工具/选项/环境/外部工具,然后 Linguist Linguist em>类别。将其命名为创建/更新TS文件。按如下方式设置此条目的字段:

      • 可执行文件%{CurrentProject:QT_INSTALL_BINS}\translate.bat

      • 参数%{CurrentProject:FilePath}

      • 工作目录%{CurrentProject:QT_INSTALL_BINS}

    2. 如下所示:External Tools,然后应用更改并关闭选项窗口。

      1. 转到工具/外部/语言专家,选择创建/更新TS文件,现在它应该照常完成工作。
      2. 背景

        以下是评论中 n.m。提供的link,它是此解决方案的基础。这也是 n.m。的解释:

          

        从控制台运行lupdate绝对要求你运行   vcbars * .bat,如我给你的链接中所述。那是因为   lupdate想要运行编译器,它不知道在哪里找到它。   vcbars * .bat会调整您的PATH和其他环境变量。在   理论上GUI应该为您设置环境,但在实践中   它可能没有。

答案 1 :(得分:2)

在我的案例中,罪魁祸首是Qt Creator以某种方式为C和C ++挑选了不同的目标ABI:

C and C++ ABI mismatch

解决此问题后,我设法让lupdate无问题地运行。

答案 2 :(得分:1)

您必须从lupdate.exe控制台运行VS2015 x86 Native Tools Command Prompt