久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

qt下的跨目錄多工程編譯

 Harrison.Ding 2012-07-05

這里要編譯的工程包含一個庫和一個可執(zhí)行文件,。可執(zhí)行文件依賴于庫,,所以要先編譯庫,,編譯后庫放在lib目錄里面,可執(zhí)行文件放在bin目錄里面,。

目錄結(jié)構(gòu)如下:

  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在工程根目錄下,,內(nèi)容如下:

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

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

庫的工程文件在src目錄中,名為src.pro,, 內(nèi)容如下:

  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表示編譯后的庫是靜態(tài)庫。DESTDIR設(shè)置編譯后的庫的位置,。

庫編譯結(jié)束后就是可執(zhí)行文件編譯了,,工程文件在app目錄下的app.pro,內(nèi)容如下:

  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  

如果要編譯多個庫,,多個可執(zhí)行文件,,或者多級目錄工程,可以參照這個例子寫多個pro文件,,遞歸而已,,不是什么難事。


Reference:

Johan Thelin. Foundations of Qt Development. Apress 2007




多工程該怎么組織

多工程該如何組織
現(xiàn)在我有一個用 vs2008 創(chuàng)建的項(xiàng)目 solution,,內(nèi)含三個工程,,分別為
libABC
helloworld
test
其中 libABC 工程需要編譯出一個動態(tài)庫,,win 下是 .dll,linux 下是 .mo
helloworld 和 test 是兩個可編譯出 .exe 文件的工程,并且都依賴于 libABC 的動態(tài)庫,。
在 vs 中,,我可以設(shè)置依賴關(guān)系,并且可以選擇 helloworld 或者 test 作為啟動項(xiàng)目,。

問題,,在 qt 中:
1.qt 是否有 vs 中工程的概念?
2.不管有沒有,,我該如何組織這個“工程”,,使得用起來如 vs 一樣方便?


------解決方案--------------------------------------------------------
1. 在QtCreator中沒有類似solution功能,,但可以同時打開多個工程,,并可以設(shè)置缺省工程;
2.  
可以同時打開libABC,,helloword,,test三個工程;
在helloworld和test工程中設(shè)置libABC工程動態(tài)庫的輸出文件,,即可 
------解決方案--------------------------------------------------------
在你工程的頂級目錄里放置一個project.pro,,內(nèi)容是:
TEMPLATE = subdirs
SUBDIRS = libfoo foo

然后添加一個libfoo目錄和一個foo目錄,里面分別放置libfoo.pro和foo.pro文件,,內(nèi)容是:
# libfoo.pro
TEMPLATE = lib
# ...

# foo.pro
TEMPLATE = app
# ... 
------解決方案--------------------------------------------------------
樓上的正解

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多