为 Qt 项目树中的所有项目定义一个全局宏

Defining a global macro for all projects in Qt project tree

假设,我有一个结构如下的项目:

/project
|--- root.pro
   |--- app
   |    |--- app.pro
   |    `--- ... (source files of app)
   |--- test
   |    |--- test.pro
   |    `--- ... (source files of test)

root.pro 包含 SUBDIRS += project test。我想测试使用条件包含的代码。所以我想在根项目中添加我自己的全局定义来编译应用程序并以相同的方式进行测试。我假设我可以通过我的 root.pro 中的 DEFINES += MY_DEFINE 来做到这一点,但它不起作用。

那么问题来了:如何定义全局宏在应用工程和测试工程中使用?

您应该创建一个包含所有项目的文件。比如根目录下的include.mk

DEFINES += MY_DEFINE

然后在每个项目中:

include("../include.mk")