zoukankan      html  css  js  c++  java
  • qt下的跨目录多工程编译

    原地址:http://blog.csdn.net/fjb2080/article/details/7386292

    转自: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

  • 相关阅读:
    通过android XML 创建图形,降低对美工的依赖
    ViewPager学习之仿微信主界面
    Linux学习日志--文件搜索命令
    蓝桥杯 历届试题 小朋友排队 【树状数组】+【逆序数】
    操作系统——IO管理
    Mac和PC在工作中管理的对比(5)
    虚拟地址空间分配
    UVA 624 CD(DP + 01背包)
    【CSS】瀑布流布局的两种方式:传统多列浮动和绝对定位布局
    外煤关注:百度收购大部分糯米股份
  • 原文地址:https://www.cnblogs.com/lanye/p/3533762.html
Copyright © 2011-2022 走看看