【问题标题】:Add multiple files to output for extra compiler Qt为额外的编译器 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 个目标。

标签: c++ qt qt4 qmake


【解决方案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_HEADERSOUTPUT_FILES 来自哪里?也尽量省略$$
  • INPUT_HEADERSOUTPUT_FILES 在同一个 .pri 文件中形成得更早,我保证,它们的形成是正确的。
  • 实际上,正如我所说,问题在于编译器忽略了“make”文件second.cppthird.cpp。这就是问题所在,其他一切正常。我不明白为什么这两个文件消失了
  • 另一个澄清主要问题。 .output 不能是多个文件。
猜你喜欢
  • 1970-01-01
  • 2011-09-30
  • 1970-01-01
  • 2019-11-21
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 2019-02-07
  • 1970-01-01
相关资源
最近更新 更多