linux qt creator 怎么添加自己编译的库

linux qt creator 怎么添加自己编译的库,第1张

比如我需要添加一个叫*.so.*的文件,这个*.so文件在/etc目录下(随便定的目录)

在.pro文件里添加:

LIBS

+=

-L

/etc/

-l*

在.cpp引用的时候,还需要把相关的

头文件

包含进去

先写好实现动态链接库的libmy.cpp文件和libmy.h文件,如下:

// libmy.cpp

#include"libmy.h" 

#include<iostream>

using namespace std

MyLib::MyLib() 

}

MyLib::~MyLib() 

}

void MyLib::hello() 

{     

 cout <<"hello world~!" <<endl

}

// libmy.h文件

#ifndef  LIBMY_H 

#define  LIBMY_H  

class MyLib

public:     

 MyLib()     

 ~MyLib()       

 void hello() 

#endif  /*LIBMY_H*/

然后写好pro文件,如下:

TEMPLATE = lib 

TARGET =DllTest

HEADERS += libmy.h 

SOURCES += libmy.cpp

保存关闭,文件名命名为MyDll.pro

在Shell里执行qmake MyDll.pro,在没有错误的情况下,然后执行make ,可以看到生成了几个后缀名为so的文件,如下图:

证明生成动态链接库成功。然后编写测试动态链接库的主函数,如下:

#include"libmy.h" 

#include<iostream>

using namespace std

int main(int argc,char *argv[]) 

{     

       MyLib *lib = new MyLib()       // 调用刚才编写的动态链接库

       lib->hello()         

        cout <<"danshiming " <<endl

        int i

        cin >>i

       return 1 

}

编写main.pro文件,如下:

LIBS += -L ./                               # 设置程序查找动态库的目录为当前目录

# 注意:用QT生成的动态库默认都加了lib前缀和扩展名及版本名,但调用时不用加lib,不用加文件

# 扩展名so、不用加版本名1.0.0.即下面LIBS中的DllTest就是实际的动态库libDllTest.so.1.0.0

LIBS+=-lDllTest  #注意:调用时不用加lib,不用加文件扩展名so、不用加版本名1.0.0,记得前面加l(字母)

TARGET = libMyTest

SOURCES += main.cpp

执行qmake main.pro生成makefile文件,然后执行make,可以看到生成了libMyTest可执行文件。

将动态链接库libDllTest.so.1.0.0和可执行文件传到arm板上,如下:

在arm板上执行libMyTest,如下:

# chmod +x  libMyTest    // 先赋予可执行权限

执行:

#  ./libMyTest

输出如下:


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11637196.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存