這里要編譯的工程包含一個庫和一個可執(zhí)行文件,。可執(zhí)行文件依賴于庫,,所以要先編譯庫,,編譯后庫放在lib目錄里面,可執(zhí)行文件放在bin目錄里面,。 目錄結(jié)構(gòu)如下:
全局的工程文件complex.pro在工程根目錄下,,內(nèi)容如下:
subdirs模板表示要編譯多個子目錄中的工程。CONFIG選項(xiàng)要求各個子工程按順序編譯,,子目錄的編譯順序在SUBDIRS中指明,。 庫的工程文件在src目錄中,名為src.pro,, 內(nèi)容如下:
TARGET表示編譯后的庫名字為base,,CONFIG += static表示編譯后的庫是靜態(tài)庫。DESTDIR設(shè)置編譯后的庫的位置,。 庫編譯結(jié)束后就是可執(zhí)行文件編譯了,,工程文件在app目錄下的app.pro,內(nèi)容如下:
如果要編譯多個庫,,多個可執(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 # ... ------解決方案-------------------------------------------------------- 樓上的正解 |
|