c++ - 将多个文件添加到输出以用于额外的编译器 Qt

标签 c++ qt qt4 qmake

我在为 Qt extra 编译器添加多个文件到输出时遇到了麻烦。
这是我的额外编译器的样子:

 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

最佳答案

作为docs说:

output - The filename that is created from the custom compiler.

输出应该是一个文件,而不是多个。根据您要实现的目标,您可能需要为每个输出文件创建一个单独的编译器目标,或者使用 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}
}

关于c++ - 将多个文件添加到输出以用于额外的编译器 Qt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29684808/

相关文章:

C++ Vigenere密码

qtableview文本编辑

c++ - 如何解决 Qt Creators 变量 -"<not accessible>"的行为?

c++ - 如何区分存储在 QGraphicsScene.selectedItems() 上时继承 QGraphicsItems 的对象

c++ - (C++)Code::Blocks 可能错误的 Qt4 设置

c++ - 使用枚举进行类型检查——如何正确确定范围

c++ - std::list 永远循环,范围问题?

c++ - 为什么当我尝试重写指向 Direct3D 设备的 `EndScene` 函数的指针时什么也没有发生?

qt - 使用 QCheckbox 增加复选框大小而不是其文本?

qt - QDockWidget 关闭按钮和 float 按钮的工具提示?