【问题标题】:Shared preprocessing macro definition among multiple sub-projects, i.e. shared libraries多个子项目之间共享预处理宏定义,即共享库
【发布时间】:2019-10-06 16:25:40
【问题描述】:

我有一个包含多个子项目的项目。 可执行文件的一个子项目,其余的共享库。每个子项目都有自己的*.pro 文件。

我需要定义一个编译器预处理宏,但我不想在每个*.pro 文件中重复定义它。是否可以在多个子项目之间共享一个宏定义?


我的示例预处理宏:

#define PI 3.1415926

添加到*.pro 文件:

DEFINES += "PI=\"3.1415926\""

【问题讨论】:

  • 您是否考虑过使用*.pri 文件并将其包含在您的.pro 文件中?
  • Qt: *.pro vs *.pri的可能重复

标签: c++ qt c-preprocessor qt-creator


【解决方案1】:

您可以在 .pri 文件(例如 config.pri)中定义宏,并将此 .pri 文件包含在子项目的每个 .pro 文件中。

config.pri

DEFINES += "PI=\"3.1415926\""

sub_project.pro

include (/path/to/config.pri)

这会迫使您修改每个子项目的 .pro 文件。

【讨论】:

  • 正如@vahancho 在评论中建议的那样,*.pri 文件通常用于此目的,对吧?
  • 嗯,looks like *.pro*.pri 之间没有太大的技术差异
  • 对于include 指令使用 .pri 而不是 pro 仍然是一种惯例
  • 确实如此。我不知道这个 .pri 命名约定 (wiki.qt.io/Including_.pro_Files)。我正在编辑答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-18
  • 2012-07-22
  • 1970-01-01
  • 2017-05-15
  • 2011-02-02
  • 1970-01-01
相关资源
最近更新 更多