12

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

设置:

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

问题:我已经从QtCreator 运行 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”完成

否则项目编译、运行和调试都没有问题,套件:Desktop Qt 5.9.1 MSVC2017 64bit (default),这就是我认为环境设置正确的原因。

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

编辑:我正在添加当前设置的屏幕截图(由 Qt 安装程序制作),试图澄清为什么我认为环境设置正确:

套件

cmake 配置

4

4 回答 4

9

解决方案

这是我找到的解决方案(相当hack-ish,但不是太多),基于nm在问题下的评论中提供的信息和建议:

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

    "%programfiles(x86)%\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" & lupdate.exe %1

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

  1. Qt Creator中选择工具/选项/环境/外部工具,然后在语言学家类别下添加工具。将其命名为Create/Update TS files。如下设置该条目的字段:

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

    • 参数%{CurrentProject:FilePath},

    • 工作目录%{CurrentProject:QT_INSTALL_BINS}

如此处所示:外部工具,然后应用更改并关闭选项窗口。

  1. 转到Tools/External/Linguist,选择Create/Update TS files,现在它应该像往常一样完成这项工作。

的背景

这里再次是nm在评论中提供的链接,它是此解决方案的基础。这里也是nm的解释:

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

于 2017-07-08T20:05:28.340 回答
4

如果您使用的是mingw版本的Qt5.9.1,您可能需要配置mingw编译工具的系统路径。

为 Qt 的语言列表 lupdate 配置 mingw 的系统路径

于 2017-08-12T03:57:02.530 回答
2

就我而言,罪魁祸首是 Qt Creator 以某种方式为 C 和 C++ 选择了不同的目标 ABI:

C 和 C++ ABI 不匹配

修复此问题后,我设法毫无问题地lupdate运行。

于 2017-07-06T22:06:12.223 回答
1

您必须lupdate.exeVS2015 x86 Native Tools Command Prompt控制台运行。

于 2017-08-22T20:57:42.897 回答