qt usb通信添加动态库

qt usb通信添加动态库,第1张

就是把所有需要的dell库全部放在exe所在文件夹中,和exe处于同一级目录中。

右键项目文件,点击添加库。

选择外部库。

进行下面配置,选择路径,添加静态库文件,去掉勾选。点击下一步点击完成即可。如果运行报错,需要把pro文件中添加每个库自动生成的代码的最后一行else代码注释掉即可。

工具/原料

安装有Qt集成开发环境的Windows或Linux

一、建立并生成动态链接库

1

首先在磁盘的某个位置建立一个名为DllDemo的文件夹。

打开QtCreator,新建工程,选择Library,C++库,然后就是choose。

2

然后在d出的C++库对话框默认类型共享库,名称为MyDll。路径就是刚才建立的DllDemo文件夹。然后,一直下一步,直到点击完成。

3

来看看程序结构,以及pro文件内容。

可以看到系统自动生成了一个mydll_global.h的文件。

pro内也自动生成了一些内容。可以看到TEMPLATE = lib,而不是平时的TEMPLATE = app。

4

再来看看mydll_global.h的内容。

可以看到系统自动定义了两个宏。用于声明哪些函数是需要导出的。

5

下面来给代码添加点内容,以便于待会使用。

首先我们在mydll.h中添加几行代码,

注意:extern "C" MYDLLSHARED_EXPORT必须要有。

6

再来看看mydll.cpp中的实现代码,都比较简单。

7

代码编写完毕后,直接构建就行了。然后就可以看到生成的dll了。

二、测试生成的DLL

1

新建一个基于Qt的控制台应用程序,名称为DllTest。依然放置在DllDemo的目录下。

2

建好了以后,就可以在main.cpp写代码了。通过QLibrary类来加载dll。

因为要获得类对象的实例,所以需要将mydll.h包含进来。

要注意的是,我没有对函数是否成功获取做检测。

来看看代码:

3

代码写完后就可以构建程序了。不过要运行程序,还需要将刚才生成的dll拷贝到程序的同级目录。

4

在IDE中运行程序,因为生成的是debug版的程序,相关的环境变量未设置,无法独立运行。

可以看到dll工作的很好,程序运行正常。

三、善用Assistant

1

最后来看看Assistant中关于QLibrary的描述。比较费解的是,Assistant中并没有对创建共享库做详细的说明,估计是这个太简单或资料太多了吧。

.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.需要另外加库的程序最好单独建一个文件


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

原文地址: http://outofmemory.cn/bake/11733740.html

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

发表评论

登录后才能评论

评论列表(0条)

保存