关闭

qt下的跨目录多工程编译

1149人阅读 评论(0) 收藏 举报

转自:http://blog.csdn.net/high_high/article/details/7385585


这里要编译的工程包含一个库和一个可执行文件。可执行文件依赖于库,所以要先编译库,编译后库放在lib目录里面,可执行文件放在bin目录里面。

目录结构如下:

  1. .  
  2. ├── app  
  3. │   ├── app.pro  
  4. │   ├── appwindow.cpp  
  5. │   ├── appwindow.h  
  6. │   └── main.cpp  
  7. ├── bin  
  8. ├── complex.pro  
  9. ├── include  
  10. │   └── base.h  
  11. ├── lib  
  12. └── src  
  13.     ├── base.cpp  
  14.     └── src.pro  

全局的工程文件complex.pro在工程根目录下,内容如下:
  1. TEMPLATE = subdirs  
  2. SUBDIRS = src app  
  3. CONFIG += ordered  

subdirs模板表示要编译多个子目录中的工程。CONFIG选项要求各个子工程按顺序编译,子目录的编译顺序在SUBDIRS中指明。

库的工程文件在src目录中,名为src.pro, 内容如下:

  1. TARGET = base  
  2. VERSION = 0.1.0  
  3. CONFIG += static  
  4.   
  5. DESTDIR = ../lib  
  6.   
  7. INCLUDEPATH += ../include  
  8. DEPENDPATH += . ../include  
  9.   
  10. SOURCES += base.cpp  
  11. HEADERS += base.h  

TARGET表示编译后的库名字为base,CONFIG += static表示编译后的库是静态库。DESTDIR设置编译后的库的位置。

库编译结束后就是可执行文件编译了,工程文件在app目录下的app.pro,内容如下:

  1. TEMPLATE = app  
  2. TARGET = app  
  3. DESTDIR = ../bin  
  4.   
  5. INCLUDEPATH += . ../include  
  6. DEPENDPATH += .  
  7.   
  8. LIBS += -L../lib -lbase  
  9.   
  10. SOURCES += appwindow.cpp main.cpp  
  11. HEADERS += appwindow.h  

如果要编译多个库,多个可执行文件,或者多级目录工程,可以参照这个例子写多个pro文件,递归而已,不是什么难事。


Reference:

Johan Thelin. Foundations of Qt Development. Apress 2007


0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1112445次
    • 积分:12480
    • 等级:
    • 排名:第1106名
    • 原创:161篇
    • 转载:154篇
    • 译文:0篇
    • 评论:203条
    最新评论
    好友