qt動態庫與靜態庫編譯、應用以及pri檔案建立
一. 靜態庫的生成
1. 測試目錄: lib
2. 原始碼檔名: mywindow.h, mywindow.cpp
3. 編寫專案檔案: mywindow.pro
注意兩點:
- TEMPLATE = lib
- CONFIG += staticlib
4. 生成Makefile:
- qmake mywindow.pro
5. 編譯生成靜態庫libmywindow.a
- make
二. 靜態庫的使用
1. 測試目錄: test
2. 將mywindow.h與libmywindow.a拷貝至test目錄下
3. 編寫main.cpp, 包含標頭檔案mywindow.h, 並呼叫MyWindow類
4. 編寫專案檔案: test.pro
注意加上庫路徑與庫檔名:
- LIBS += -L ./ -lmywindow
5. 生成Makefile: qmake test.pro
6. 編譯: make
7. 執行: ./test
三. 動態庫的生成
動態庫編譯基本和靜態庫類似,需要將上述將要進行編譯的專案檔案.pro中下面這行去掉
- CONFIG += staticlib
按上述操作編譯完後就可以得到以lib開頭並且.so* 結尾動態庫檔案,一般有多個
四. 動態庫的應用
編譯完成後,可以將目錄下lib開頭並且.so* 結尾的檔案拷貝到需要用的地方 其他操作和靜態庫應用一樣。
五. pri檔案編寫
pri檔案一般用於庫對外提供的方便應用程式呼叫該庫的檔案
pri檔案中一般新增庫提供的標頭檔案的存放位置和呼叫該庫的語句,以及一些依賴關係
一般有以下幾個部分:
INCLUDEPATH + = \
$$PWD/../include/ 包含的路徑(不用$$PWD,不能顯示目錄結構 提示找不到檔案)
這個選項可以指定我們#include語句要包含標頭檔案的目錄,如果你有其它的不在當前目錄的標頭檔案需要包含進來,並又不想在自己的原始檔中使用絕對路徑或相對路徑來包含標頭檔案,那麼我就可以在這裡把這個標頭檔案所在的路徑包含進來
HEADERS + = \
$$PWD/.... 包含的標頭檔案
SOURCES + = \
$$PWD/.... 包含的.cpp檔案
include(路徑) 包含的其他pri檔案(一般用於依賴庫的新增)
//設定釋出內容及安裝目錄
sources.file + = $$HEADERS
sources.file - = *.h(剔除不要釋出的標頭檔案)
sources.path =../../include/ (檔案存放目錄)
target.path = ../../lib/ (庫檔案存放目錄)
INSTALLS + = target sources 自動安裝