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);

}

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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章