QT生成动态链接库.so文件

时间:2022-01-26 15:52:59

首先是新建一个工程,选择C++库,打开后是这样的:

QT生成动态链接库.so文件

然后输入新建的名称,下一步,记得勾选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+类名)

如下图所示:

QT生成动态链接库.so文件

QT生成动态链接库.so文件

在main.cpp中调用这个函数。

int main(){

Mm mm;//需要先新建这个对象

int c=mm::aa(2,5);//mm这个对象中有aa这个函数,这样就实现了调用。

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

}

至此,就完成了整个过程!