【问题标题】:Qt: Creating a directory via project fileQt:通过项目文件创建目录
【发布时间】:2018-05-21 13:10:11
【问题描述】:

我试图在构建过程中将我的编译语言文件复制到我的输出目录中。我已经完成了复制,但没有创建目录。经过大量谷歌搜索后,我想出了这个:

LANGDIR = $$OUT_PWD
win32:CONFIG(debug, release|debug):LANGDIR = $$LANGDIR/debug/lang
win32:CONFIG(release, release|debug):LANGDIR = $$LANGDIR/release/lang

makeLang.commands += $${QMAKE_MKDIR} $$shell_path($${LANGDIR})
first.depends = $(first) makeLang
export(first.depends)
export(makeLang.commands)
QMAKE_EXTRA_TARGETS += first makeLang

这在很大程度上完成了这项工作,但是,当目录 lang 已经存在时,构建过程会失败。我知道QMAKE_CHK_DIR_EXISTS 存在,但我不知道如何将其用作条件。我想可能是这样的!$${QMAKE_CHK_DIR_EXISTS} $$shell_path($${LANGDIR}) : $${QMAKE_MKDIR} $$shell_path($${LANGDIR}),但这只会让 jom.exe 崩溃;没想到无论如何都能奏效。

我也愿意接受有关更好的方法来做我想做的事情的建议。理想情况下,整个事情应该是独立于平台的,这样我就可以在我的 CI 管道中生成包含语言文件的工件。

【问题讨论】:

    标签: qt qmake


    【解决方案1】:

    您应该使用QMAKE_MKDIR_CMD,它仅在目录不存在时创建目录。

    【讨论】:

    • 谢谢,这很有效,但应该注意的是,这并不像用另一个替换一个那么简单。相反,我需要使用这一行:makeLang.commands += $$sprintf($${QMAKE_MKDIR_CMD}, $$shell_path($${LANGDIR})) 来获取获取我的参数的命令。现在这似乎完美无缺。
    猜你喜欢
    • 1970-01-01
    • 2016-11-11
    • 2012-07-26
    • 2019-04-15
    • 1970-01-01
    • 1970-01-01
    • 2011-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多