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

问题描述 投票:0回答:1

当其他源文件使用默认标志时?我的一些源文件需要一些额外的 C++ 预处理器定义。我使用 Qt 5。我只发现 QMAKE_CXXFLAGS 在 qmake 项目中全局使用。

c++ qt qt5 qmake qtcore
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

另请参阅文档中的高级使用如何添加编译器:

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

会员简介

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

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

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

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

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

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

name 自定义编译器正在执行的操作的描述。这仅在某些后端使用。

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

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

variables 表示此处指定的变量在 pro 文件中被称为 $(VARNAME) 时被 $(QMAKE_COMP_VARNAME) 替换。

variable_out 应添加从输出创建的文件的变量。

© www.soinside.com 2019 - 2024. All rights reserved.