我在为Qt额外编译器添加多个文件输出时遇到了麻烦。
这是我的额外编译器的样子:
new_target.input = $${INPUT_HEADERS}
new_target.output = $${OUTPUT_FILES}
new_target.commands = python $${SCRIPT_NAME}.py $${CONFIG_FILE} --generate
new_target.CONFIG += target_predeps
new_target.variable_out = SOURCES
new_target.dependency_type = TYPE_C
QMAKE_EXTRA_COMPILERS += new_target
在$${OUTPUT_FILES}
不包含多个文件之前,一切正常。(例如: OUTPUT_FILES=first.cpp second.cpp third.cpp
)
因此,qmake只识别提到的第一个。
是否可以将多个文件传递给.output字段?
我使用 Qt 4.8.6
答案 0 :(得分:1)
正如docs所说:
output
- 从自定义编译器创建的文件名。
输出应该是一个文件,而不是多个。根据您要实现的目标,您可能需要为每个输出文件创建单独的编译器目标,或者使用for(iterate, list)
循环执行:
OUTPUT_TARGETS=first second third
for(_TARGET, OUTPUT_TARGETS) {
eval($${_TARGET}.input = INPUT_HEADERS)
eval($${_TARGET}.output = $${_TARGET}.cpp)
...
QMAKE_EXTRA_COMPILERS += $${_TARGET}
}