1. 程式人生 > >QT生成DLL,呼叫DLL

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