使用 Boost 库 Qt C++ 更新翻译文件

Posted

技术标签:

【中文标题】使用 Boost 库 Qt C++ 更新翻译文件【英文标题】:Update translation file using Boost library Qt C++ 【发布时间】:2016-11-07 18:05:19 【问题描述】:

我在我的 C++ 项目中使用 Boost 库。

我将它包含在 PRO 文件中,如下所示:

win32: INCLUDEPATH += C:/boost_1_60_0
win32: LIBS += "-LC:/boost_1_60_0/stage/lib/"

但是,当我在终端 (cmd) 上运行以下命令来更新我的翻译文件时:

lupdate MyProject.pro

它在 Boost 库路径中搜索要更新的文件。

这正常吗?我该怎么做才能不在 Boost 库路径中搜索?

现在,当我需要运行 lupdate 命令时,我正在注释 Boost 包含行,但我不想每次需要更新我的翻译文件时都这样做。

Qt 5.3.2

提升 1.6.0

【问题讨论】:

我也有同样的问题!您是否找到了比每次都评论提升更好的解决方案? 抱歉,我目前还没有找到其他解决方案。 @DvoryankinEvgeny 请看一下 cbuchart 的答案。 【参考方案1】:

错误报告 (QTBUG-27936) 中有一个解决方法,涉及 .pro 项目中的 TR_EXCLUDE 选项。它用于告诉lupdate 排除某些文件。我用 Qt 5.6 和 5.8 进行了测试,它按预期工作。这是我的 .pro 文件的摘录:

INCLUDEPATH += /Users/user/libs/boost
TR_EXCLUDE += /Users/user/libs/boost/*

以前的答案 这是以前的答案,我无法确认,而且它恰好是错误的。我把它放在这里,所以它被记录在案。错误报告 (QTBUG-27936) 中有一个解决方法,即在预编译的标头中包含所有 Boost 库,因为 lupdate 不查看它。

【讨论】:

谢谢@cbuchart。你有什么例子可以说明我如何将PRECOMPILED_HEADER 与声明win32: INCLUDEPATH += C:/boost_1_60_0 一起使用? 对不起,我今天测试了它并没有解决问题。我已经用可行的解决方案更新了答案。 非常感谢@cbuchart,它成功了。就我而言,我使用:win32: TR_EXCLUDE += C:/boost_1_60_0/*

以上是关于使用 Boost 库 Qt C++ 更新翻译文件的主要内容,如果未能解决你的问题,请参考以下文章

在Qt工程中加Boost

如何在 C++ 中生成 UUID,而不使用 boost 库?

如何在 pkg-config 中使用 C++ Boost 库?

c++ boost文件夹放在哪

使用 boost.python 时 c++ 流有啥问题?

LNK1104 将 Boost 库添加到 Qt 项目时出错