qt下的跨目錄多工程編譯(轉)

這裏要編譯的工程包含一個庫和一個可執行文件。可執行文件依賴於庫,因此要先編譯庫,編譯後庫放在lib目錄裏面,可執行文件放在bin目錄裏面。app

目錄結構以下:spa

 

.
├── app
│   ├── app.pro
│   ├── appwindow.cpp
│   ├── appwindow.h
│   └── main.cpp
├── bin
├── complex.pro
├── include
│   └── base.h
├── lib
└── src
    ├── base.cpp
    └── src.pro

 


全局的工程文件complex.pro在工程根目錄下,內容以下:.net

 

 

TEMPLATE = subdirs
SUBDIRS = src app
CONFIG += ordered

 

 


subdirs模板表示要編譯多個子目錄中的工程。CONFIG選項要求各個子工程按順序編譯,子目錄的編譯順序在SUBDIRS中指明。code

 

庫的工程文件在src目錄中,名爲src.pro, 內容以下:blog

 

TARGET = base
VERSION = 0.1.0
CONFIG += static

DESTDIR = ../lib

INCLUDEPATH += ../include
DEPENDPATH += . ../include

SOURCES += base.cpp
HEADERS += base.h

 

TARGET表示編譯後的庫名字爲base,CONFIG += static表示編譯後的庫是靜態庫。DESTDIR設置編譯後的庫的位置。遞歸

庫編譯結束後就是可執行文件編譯了,工程文件在app目錄下的app.pro,內容以下:io

 

TEMPLATE = app
TARGET = app
DESTDIR = ../bin

INCLUDEPATH += . ../include
DEPENDPATH += .

LIBS += -L../lib -lbase

SOURCES += appwindow.cpp main.cpp
HEADERS += appwindow.h

 


若是要編譯多個庫,多個可執行文件,或者多級目錄工程,能夠參照這個例子寫多個pro文件,遞歸而已,不是什麼難事。編譯

 

 

Reference:模板

Johan Thelin. Foundations of Qt Development. Apress 2007class

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

相關文章
相關標籤/搜索