使用 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++ 更新翻译文件的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C++ 中生成 UUID,而不使用 boost 库?