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

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

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

    目录结构如下:

    [plain] view plaincopy

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

    全局的工程文件complex.pro在工程根目录下,内容如下:

    [plain] view plaincopy

    1. TEMPLATE = subdirs 
    2. SUBDIRS = src app 
    3. CONFIG += ordered 

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

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

    [plain] view plaincopy

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

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

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

    [plain] view plaincopy

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

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

    Reference:

    Johan Thelin. Foundations of Qt Development. Apress 2007

  • 相关阅读:
    二分图最大匹配的König定理及其证明
    HDOJ 2389 Rain on your Parade
    HDOJ 1083 Courses
    HDOJ 2063 过山车
    POJ 1469 COURSES
    UESTC 1817 Complete Building the Houses
    POJ 3464 ACM Computer Factory
    POJ 1459 Power Network
    HDOJ 1532 Drainage Ditches
    HDU 1017 A Mathematical Curiosity
  • 原文地址:https://www.cnblogs.com/cute/p/2470291.html
Copyright © 2011-2022 走看看