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

时间:2014-12-29 05:21:09

标签: c++ qt qt5 qmake qtcore

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

1 个答案:

答案 0 :(得分:5)

这是理论上用于在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

另请参阅高级用法in the documentation如何添加编译器:

  

自定义编译器规范支持以下成员:

     

会员说明

     

命令 用于从输入生成输出的命令。

     

CONFIG 自定义编译器的特定配置选项。有关详细信息,请参阅CONFIG表。

     

depend_command 指定用于生成输出依赖项列表的命令。

     

dependency_type 指定输出的文件类型。如果它是已知类型(例如TYPE_C,TYPE_UI,TYPE_QRC),则将其作为这些类型的文件之一进行处理。

     

depends 指定输出文件的依赖关系。

     

输入 指定应使用自定义编译器处理的文件的变量。

     

name 自定义编译器正在执行的操作的说明。这仅用于某些后端。

     

输出 从自定义编译器创建的文件名。

     

output_function 指定用于指定要创建的文件名的自定义qmake函数。

     

变量 表示当在pro文件中将$(VARNAME)作为$(VARNAME)引用时,此处指定的变量将替换为$(QMAKE_COMP_VARNAME)。

     

variable_out 应该将从输出中创建的文件的变量添加到。