gpt4 book ai didi

compiler-construction - qmake:额外的编译器(处理步骤)?

转载 作者:行者123 更新时间:2023-12-01 12:47:56 26 4
gpt4 key购买 nike

在我基于 qmake 的项目中,我想在编译之前对某些文件运行“xxd”。根据文档,我的 pro 文件中的相关部分如下所示:

SHADERS = shader/tone.frag \
shader/trans.frag \
shader/hue.frag

# xxd
xxd.output = ${QMAKE_FILE_NAME}.xxd
xxd.commands = xxd -i ${QMAKE_FILE_NAME} > ${QMAKE_FILE_OUT}
xxd.depends = SHADERS
xxd.input = $$SHADERS
xxd.variable_out = HEADERS

QMAKE_EXTRA_COMPILERS += xxd

Qmake 没有提示,但它也根本不运行 xxd。我是否必须为每个要预处理的文件创建特殊目标? (生成的 *.xxd 文件将 而不是 由我事后编译,仅包含在其他 cpp 文件中)

编辑:在 smokris 的帮助下,这就是我修复 pro 文件中的部分的方法:
# xxd
xxd.output = ${QMAKE_FILE_NAME}.xxd
xxd.commands = xxd -i ${QMAKE_FILE_NAME} > ${QMAKE_FILE_OUT}
xxd.depends = $$SHADERS
xxd.input = SHADERS
xxd.variable_out = HEADERS

最佳答案

.input属性需要变量的名称,而不是文件列表。尝试带走 $$只需使用 xxd.input = SHADERS .
.depends ,另一方面,需要一个文件列表,所以使用 xxd.depends = $$SHADERS .

如果您设置 .variable_outHEADERS , SOURCES , 或 OBJECTS ,编译器将运行。但是,如果您设置 .variable_out为另一个变量名,您还必须设置 .CONFIG = target_predeps以便编译器运行。

关于compiler-construction - qmake:额外的编译器(处理步骤)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14260542/

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