找回密码
 立即注册
收起左侧

关于工程文件,如何添加一个宏定义,如所有的子工程有效

1
回复
11963
查看
[复制链接]
累计签到:311 天
连续签到:1 天
来源: 2017-4-13 12:15:53 显示全部楼层 |阅读模式
10Qter豆
本帖最后由 家有布衣 于 2017-4-13 12:25 编辑

test_macro.pro
  1. TEMPLATE = subdirs
  2. SUBDIRS = \
  3.     test_1/test_1.pro \
  4.     test_2/test_2.pro
复制代码
test_1.pro
  1. QT       += core gui

  2. greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

  3. TARGET = test_1
  4. TEMPLATE = app


  5. SOURCES += main.cpp\
  6.         widget.cpp

  7. HEADERS  += widget.h
复制代码
test_2.pro
  1. QT       += core gui

  2. greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

  3. TARGET = test_2
  4. TEMPLATE = app


  5. SOURCES += main.cpp\
  6.         widget.cpp

  7. HEADERS  += widget.h
复制代码

思路1:利用DEFINES添加一个宏定义,但是此宏只是在单个工程有效。test_macro.pro添加这样一个宏定义之后,在test_1.pro的main.cpp无法识别。
思路2:修改qmake.conf添加一个自定义变量,在pro文件中利用contains对自定义变量进行判定,并通过DEFINES添加自定义宏,这个是可以实现,但是修改了qmake.conf文件。

问题:如何通过顶层项目,test.pro文件,自定义宏,在其子项目中可以使用?


回复

使用道具 举报

累计签到:311 天
连续签到:1 天
2017-7-5 10:14:26 显示全部楼层
自己回答,可以借助*.pri文件,通过自定义变量,设置判断条件来实现。
下面是*.pro,*.pri,*.prf,*.prl的简介。
http://blog.csdn.net/dbzhang800/article/details/6348432
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了