gpt4 book ai didi

qt - qmake 和生成的 qm 文件

转载 作者:行者123 更新时间:2023-12-02 17:26:10 26 4
gpt4 key购买 nike

将已编译的翻译 (*.qm) 组织到资源中的最佳(正确)方法是什么?*.qm 文件在 qrc 文件中引用并由两(三)个额外目标以这种方式生成:

trans_update.commands = lupdate $$_PRO_FILE_
trans_update.depends = $$_PRO_FILE_

trans_release.commands = lrelease $$_PRO_FILE_
trans_release.depends = trans_update $$TRANSLATIONS

translate.depends = trans_release

QMAKE_EXTRA_TARGETS += trans_update trans_release translate deploy

CONFIG(release, debug|release) {
DESTDIR=release
PRE_TARGETDEPS += translate
}

但问题是目前 qmake 第一次运行时,还没有生成 qm 文件并且 make 打印错误如下:

    RCC: Error in 'qml.qrc': Cannot find file ...

我不喜欢将编译后的 qm 文件保存到 VSC 中的想法。

有没有办法很好地组织它?

最佳答案

我想指出一个我在一些项目中使用的解决方案。它可能远非完美,但效果很好。

CONFIG(release, debug|release) {
TRANSLATION_TARGET_DIR = $${OUT_PWD}/release/translations
LANGUPD_OPTIONS = -locations relative -no-ui-lines
LANGREL_OPTIONS = -compress -nounfinished -removeidentical
} else {
TRANSLATION_TARGET_DIR = $${OUT_PWD}/debug/translations
LANGUPD_OPTIONS =
LANGREL_OPTIONS = -markuntranslated "MISS_TR "
}

isEmpty(QMAKE_LUPDATE) {
win32:LANGUPD = $$[QT_INSTALL_BINS]\lupdate.exe
else:LANGUPD = $$[QT_INSTALL_BINS]/lupdate
}

isEmpty(QMAKE_LRELEASE) {
win32:LANGREL = $$[QT_INSTALL_BINS]\lrelease.exe
else:LANGREL = $$[QT_INSTALL_BINS]/lrelease
}

langupd.command = \
$$LANGUPD $$LANGUPD_OPTIONS $$shell_path($$_PRO_FILE_) -ts $$_PRO_FILE_PWD_/$$TRANSLATIONS

langrel.depends = langupd
langrel.input = TRANSLATIONS
langrel.output = $$TRANSLATION_TARGET_DIR/${QMAKE_FILE_BASE}.qm
langrel.commands = \
$$LANGREL $$LANGREL_OPTIONS ${QMAKE_FILE_IN} -qm $$TRANSLATION_TARGET_DIR/${QMAKE_FILE_BASE}.qm
langrel.CONFIG += no_link

QMAKE_EXTRA_TARGETS += langupd
QMAKE_EXTRA_COMPILERS += langrel
PRE_TARGETDEPS += langupd compiler_langrel_make_all

可能会对 lupdate 选项进行有意义的调整,因为各种构建(发布和调试)会生成不同的 *.ts 文件,然后触发所用 VCS 的更改.

我还喜欢引导读者阅读 example专家使用它的地方。

关于qt - qmake 和生成的 qm 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38588909/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com