1. 程式人生 > >QT生成動態連結庫.so檔案

QT生成動態連結庫.so檔案

首先是新建一個工程,選擇C++庫,開啟後是這樣的:


然後輸入新建的名稱,下一步,記得勾選Qtcore那個(就是預設的那個),否則編譯似乎不能通過。因為後面自動生成的.h檔案裡還有這個。

自動生成的有4個檔案一個pro,一個cpp,一個XXX.h檔案,一個XXX_global.h

可以檢查下.pro裡的型別是不是lib型別。

下面就可以在XXX.h檔案裡宣告自己要寫的函式,進行巨集定義,#define一些用到的常量。

比如類名為Mm,那麼

public:

int Mm::aa(int a,int b){

int c=a+b;

return c;

}

這樣呼叫這個aa傳回來的就是c的值了。

其中需要注意的是,建構函式和類同名,他不能有返回值。不能是int和void型別,都不正確。

所以需要有返回值的時候,函式名不能和類同名!之後我們還可以寫別的函式。都放在這個類中。

函式的實現需要點開.cpp檔案,cpp中專門寫實現這些函式(方法)的程式碼。

下面說呼叫這個函式:

新建一個工程,注意在pro檔案中需要將lib的目錄和.so的目錄加進去。

lib目錄(就是.h檔案所在目錄):INCLUDEPATH +=/home/will/Projects/pluginTest/

.so目錄為:LIBS += -L/home/will/Projects/build-mm-Desktop-Debug\

                                 -lmm (一定不能少了這個,這個是庫的名字l+類名)

如下圖所示:



在main.cpp中呼叫這個函式。

int main(){

Mm mm;//需要先新建這個物件

int c=mm::aa(2,5);//mm這個物件中有aa這個函式,這樣就實現了呼叫。

printf("%d\n",c);

}

至此,就完成了整個過程!