如何使用qmake为单个源文件指定编译器标志?

13

虽然其他源文件使用默认标志,但我的一些源文件需要一些额外的C++预处理器定义。我使用Qt 5。我发现只有QMAKE_CXXFLAGS适用于qmake项目的全局使用。


@lpapp感谢您的建议。我已经重新编辑了我的问题。 - cetron
1个回答

7

这是Qt源代码中以前用于GUI绘制的理论方法:

SOURCES_NOOPTIMIZE = somefile.cpp
nooptimize.name = nooptimize
nooptimize.input = SOURCES_NOOPTIMIZE
nooptimize.dependency_type = TYPE_C
nooptimize.variable_out = OBJECTS
nooptimize.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_IN_BASE}$${first(QMAKE_EXT_OBJ)}
nooptimize.commands = $${QMAKE_CXX} $(CXXFLAGS) -O0 $(INCPATH) -c ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT} # Note the -O0
QMAKE_EXTRA_COMPILERS += nooptimize

请参阅文档中的高级用法,了解如何添加编译器:
自定义编译器规范支持以下成员: 成员 描述 commands 用于从输入生成输出的命令。 CONFIG 自定义编译器的特定配置选项。有关详细信息,请参见 CONFIG 表格。 depend_command 指定用于生成输出依赖列表的命令。 dependency_type 指定输出文件的类型。如果它是已知类型(例如 TYPE_C、TYPE_UI、TYPE_QRC),则会将其处理为这些类型的文件之一。 depends 指定输出文件的依赖项。 input 指定应使用自定义编译器处理的文件变量。 name 自定义编译器正在执行的操作的描述。这只在某些后端中使用。 output 从自定义编译器创建的文件名。 output_function 指定用于指定要创建的文件名的自定义 qmake 函数。 variables 表示此处指定的变量在 pro 文件中引用时被替换为 $(QMAKE_COMP_VARNAME),作为 $(VARNAME)。 variable_out 应将从输出创建的文件添加到的变量。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接