美文网首页
QT生成动态链接库.so文件

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

作者: a微风掠过 | 来源:发表于2017-11-13 23:02 被阅读0次

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

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

    }

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

    相关文章

      网友评论

          本文标题:QT生成动态链接库.so文件

          本文链接:https://www.haomeiwen.com/subject/yavtvxtx.html