为额外的编译器 Qt 添加多个文件到输出
Posted
技术标签:
【中文标题】为额外的编译器 Qt 添加多个文件到输出【英文标题】:Add multiple files to output for extra compiler Qt 【发布时间】:2015-04-16 19:58:45 【问题描述】:我无法将多个文件添加到 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
【问题讨论】:
非常简单:每个目标一个输出。如果需要 3 个输出,则需要 3 个目标。 【参考方案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
【讨论】:
谢谢,这里是拼写错误,但代码中的一切都和你写的一样。INPUT_HEADERS
和 OUTPUT_FILES
来自哪里?也尽量省略$$
。
INPUT_HEADERS
和 OUTPUT_FILES
在同一个 .pri
文件中形成得更早,我保证,它们的形成是正确的。
实际上,正如我所说,问题在于编译器忽略了“make”文件second.cpp
和third.cpp
。这就是问题所在,其他一切正常。我不明白为什么这两个文件消失了
另一个澄清主要问题。 .output
不能是多个文件。以上是关于为额外的编译器 Qt 添加多个文件到输出的主要内容,如果未能解决你的问题,请参考以下文章