QT生成DLL,呼叫DLL
使一個專案編譯生成DLL庫而不生成可執行檔案:
刪除main()函式;
將.pro專案檔案中的TEMPLATE = app改為TEMPLATE = lib。
然後編譯,此時生成的就是.a和.dll的檔案。
在另一個專案中呼叫此DLL:
在專案檔案中新增LIB。如新增此行:LIBS += "D:/workspace/MRP_Common/debug/common.dll" (common.dll既是上面生成的DLL);
複製dll中類或方法的標頭檔案到該專案中,並在要呼叫common.dll中類或方法的檔案上面include;
make,在debug目錄中生成可執行檔案,然後將dll複製到debug中,執行。
一. 靜態庫的生成
1. 測試目錄: lib
2. 原始碼檔名: mywindow.h, mywindow.cpp, 類MyWindow繼承於QPushButton, 並將文字設定為"I'm in class MyWindow";
3. 編寫專案檔案: mywindow.pro
注意兩點:
TEMPLATE = lib
CONFIG += staticlib
4. 生成Makefile:
qmake
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
6. 編譯: make
7. 執行: ./test