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

  • 相关阅读:
    基于maven的javaweb项目模块化开发
    ramoops具体失败原因来解释驱动寄存器
    REQIMPORT-购买内部应用程序(R12.2.3)
    iOS_动态插入或删除行
    leetcode:pascal's_triangle_II
    设计模式-----观察者模式(Obsever)
    org.eclipse.birt.report.data.oda.jdbc.JDBCException: Missing properties in Connection.open(Propertie
    Unity3D-RPG项目实战(1):发动机的特殊文件夹
    NYOJ 372 巧克力的
    LeetCode Solutions : Reorder List
  • 原文地址:https://www.cnblogs.com/lanye/p/3533762.html
Copyright © 2011-2022 走看看