libusb qt 学习
链接:参考这里,超全的!!!!
安装地址:https://sourceforge.net/projects/libusb-win32/
点击下载
1、libusb-win32安装
下载libusb-win32-bin-1.2.6.0.zip,解压后进入其下的bin文件夹下,运行inf-wizard.exe程序。该程序主要是用来安装libusb-win32的驱动,以及一些相关库(.dll,.a)。官方说安装时建议先将多余的USB设备都移除,这样也避免了安装错设备的驱动。
不过可以打开inf-wizard.exe程序,进入到设备列表界面,然后再插上想要安装驱动的USB设备,等待设备列表更新,就能看出自己的设备是哪一个了,如下图。列表若是无法自动刷新,可先上一步再下一步回到设备列表界面。
如此,对刚开始折腾USB,不太明了的人,也不失为一个不错的方法,省得折腾了。
-
可以默认,Device Name可以自定义,方便自己查找
(1)最后要点击“Install Now…”进行驱动安装,依赖库会同时安装到系统中去,尤其是libusb0.dll动态库
-
过程中如果碰到如下图问题,不要紧张
退出,重新 使用管理员身份 打开软件,即可解决问题。
(2)另外,最好在目标工程目录下,自己新建一个driver文件夹,放置生成的.inf等文件
同时还会生成一系列驱动配置文件 -
install-filter——filter驱动安装。filterdriver 是驱动的高层境界,杀毒软件,防火墙,笔记本的多功能按键等等都会用到。
-
libusb-dll——动态链接库,生成libusb0.dll。接下来会说的libusb core函数就封装在这里面。同时生成了libusb0.lib文件,供程序链接,实现libusb0.dll的装载。
-
libusb-sys——USB驱动,生成驱动文件libusb0.sys。注意它是makefile项目。
-
testbulk——libusb-win32的简单案列传送“hello world!”。
-
testlibusb——实现libusb-win32驱动的设备的遍历并打印一部分设备描述信息。
-
testlibusb-win——WINFORM版的testlibusb。
安装好后进入x86文件夹,进行如下操作
(3)记住 Vendor ID和Product ID, 这两个ID用来识别你的设备,程序中要用到的,也可以使用如下方式查看VID和PID
- 过程中会提示保存驱动程序,记住保存的位置,因为之后若要别的计算机上使用同一个设备,或是你为这个设备写好的程序,那么这个驱动是需要的。否则就必需再重新在其它计算机上用libusb-win32的inf-wizard.exe安装驱动。尤其是若涉及到要发布出去给他人使用的情况,这样子就更不适合了。发布的方法之后会讲到。
2、Qt关于libusb环境的配置
由于libusb-win32是第三方的东西,所以需要配置到Qt中去,才能够使用。
(1)将解压的libusb-win32下的include中的libusb头文件中的lusb0_usb.h拷贝到Qt的include文件夹下。
Qt5.1自带QtCreator和mingW,mingW的include路径为:C:\Qt\Qt5.12.2\Tools\mingw730_64\x86_64-w64-mingw32\include。要确认你的环境上的这个路径哦!!
(2)导入lib库,在程序的.pro文件中,加入指定lib文件(.lib/.a)文件,将解压的libusb-win32下的lib中的库文件拷贝到Qt工程下(自己写的Qt程序的工程目录)格式如下(两种均可):
LIBS+=(LIB文件)
LIBS+=-L$$PWD -llibusb-1.0
$$PWD表示当前目录,-L(libusb-1.0.lib存在的路径) -l(libusb-1.0.lib的文件名称)
(3)为了隐式调用dll文件,需要在工程中加入lib文件,同时把libusb0.dll这个文件放在Qt工程文件目录下(和.pro在同一目录)
如出现以下问题:
把lilbusb-win32-bin-1.2.6.0/bin/x86/libusb0_x86.dll复制到应用程序目录下改名为libusb0.dll即可
(4)加上头文件 #include “libusb.h”
(5)在生成exe的文件夹下放入libusb-1.0.dll文件
最简单
- D:\libs&drivers\libusb-win32-bin-1.2.6.0\include 中的
lusb0_usb.h
文件放到工程下面改名为usb.h
- D:\libs&drivers\libusb-win32-bin-1.2.6.0\lib\msvc 中的
libusb.lib
文件放到工程目录下 - D:\libs&drivers\libusb-win32-bin-1.2.6.0\bin\amd64中的
libusb0.dll
文件放到工程目录下 - 如图
5. 重新编译