如何让QtLinguist随Qt 5.9.1一起发货?

sco*_*nov 12 windows qt qt-creator visual-studio-2017 qt5.9

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

建立:

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

问题:我已经运行lupdateQtCreator,以及手动从控制台,但在两种情况下其工作正常.消息是:

启动外部工具"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配置

sco*_*nov 9

解决方案

这是我发现的解决方案(相当黑客,但不是太多),基于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中,选择工具/选项/环境/外部工具,然后选择Linguist类别下的添加工具.将其命名为Create/Update TS files.设置此条目的字段,如下所示:

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

    • 参数:%{CurrentProject:FilePath},

    • 工作目录:%{CurrentProject:QT_INSTALL_BINS},

如下所示:外部工具,然后应用更改并关闭" 选项"窗口.

  1. 转到工具/外部/语言学家,选择创建/更新TS文件,现在它应该像往常一样完成工作.

的背景

这里再次提供了由评论中的nm提供的链接,该链接是此解决方案的基础.这也是nm的解释:

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