【问题标题】:How to specify compiler flag to a single source file with qmake?如何使用 qmake 为单个源文件指定编译器标志?
【发布时间】:2015-02-25 08:07:51
【问题描述】:

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

【问题讨论】:

  • 您的最后一行是拒绝投票和接近投票的邀请。我建议你删除它。另外,您能否阐明为什么要构建一个与其他文件不同的文件?你想达到什么目的?
  • @lpapp 感谢您的建议。我重新编辑了我的问题。

标签: c++ qt qt5 qmake qtcore


【解决方案1】:

这是过去在 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 指定输出文件的依赖关系。

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

名称 自定义编译器正在做什么的描述。这仅用于某些后端。

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多