qt中怎样添加库文件

qt中怎样添加库文件,第1张

.pro文件管理,所以库文件要在.pro文件中添加。1.添加库文件静态库linux:LIBS += your_lib_path/your_lib动态库linux:LIBS += -L your_lib_path -lyour_lib//经过测试了win32:LIBS += your_lib_path/your_lib例如:LIBS += -L lib/pcsc/ -lpcscliteLIBS += lib/pcsc/libpcsclite.a2.添加头文件INCLUDEPATH += your_include_path例如:INCLUDEPATH += . /usr/local/include(点号后面有空格)3.添加要编译的源文件和头文件SOURCES:所有源文件列表HEADERS:所有头文件列表FORMS:所有.ui文件列表前期工作:1.检查gcc,g++,qmake是否用错。2.在Makefile中检查是否少了头文件3.检查是否与<错用了4.需要另外加库的程序最好单独建一个文件

1,如果同时打开静态库和运行程序调用,调式模式下,可以进入静态库的内部函数进行调试;

2,其实不用把shadow build取消勾选;文件输出的文件就是lib***.a的文件,可以在shadow目录里面很方便找到;

3,新的项目使用的时候,就是让其能找到lib***.a,和该库的h头文件;

4,QT的编译输出的静态库名字会自动在项目名字前加lib三个字,后缀是.a;

5, QT5.15的编程的工程与该例子中缺少“需要什么模块就添加什么”的部分;

先写好实现动态链接库的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://outofmemory.cn/bake/11802878.html

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

发表评论

登录后才能评论

评论列表(0条)

保存