求助:如何将libusb-1.0.22库添加到Qt项目中?
别慌!我来一步步带你把libusb库成功加到Qt项目里,步骤都很清晰,跟着做就行~
第一步:先处理下载的库文件
把你拿到的libusb-1.0.22.7z解压到一个你能记住的固定路径,比如D:\ThirdParty\libusb-1.0.22。解压后你会看到几个核心文件夹:
include\libusb-1.0:这里面放着关键的头文件libusb.hMS64(对应64位系统)或MS32(对应32位系统):里面是编译好的库文件,比如libusb-1.0.lib(导入库)和libusb-1.0.dll(动态库)
第二步:修改Qt项目的.pro配置文件
这是最关键的一步,打开你的Qt项目根目录下的.pro文件,添加下面的配置代码,记得把路径改成你实际的解压路径:
# 引入libusb的头文件路径 INCLUDEPATH += D:/ThirdParty/libusb-1.0.22/include/libusb-1.0 # 链接libusb库,根据你的项目架构选对应路径 # 64位项目用这个 LIBS += -LD:/ThirdParty/libusb-1.0.22/MS64/ -llibusb-1.0 # 32位项目就把上面的MS64改成MS32 # LIBS += -LD:/ThirdParty/libusb-1.0.22/MS32/ -llibusb-1.0
第三步:处理动态库文件(必做!)
因为默认用的是动态链接库,所以你需要把MS64或MS32文件夹里的libusb-1.0.dll复制到你的Qt项目的可执行文件输出目录里——比如你用Debug模式编译的话,就复制到build-你的项目名-Desktop_xxx-Debug/debug目录下;Release模式就复制到对应的Release目录,不然运行程序会弹出“找不到dll”的错误。
第四步:测试配置是否成功
在你的代码里加一段简单的测试代码,验证一下:
#include <libusb.h> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); libusb_context *ctx = nullptr; int ret = libusb_init(&ctx); if (ret == 0) { qDebug() << "🎉 libusb初始化成功啦!"; libusb_exit(ctx); } else { qDebug() << "😮💨 libusb初始化失败,错误码:" << ret; } return a.exec(); }
运行程序,如果控制台输出“libusb初始化成功啦”,就说明配置完全没问题了!
几个要注意的小细节
- 一定要保证你的Qt项目的架构(32/64位)和你选择的libusb库的架构一致,不然会出现链接错误
- 不管你用的是MinGW还是MSVC编译器,路径都可以用斜杠
/或者双反斜杠\\,Qt都能识别 - 如果想静态链接libusb,需要找名字带
-static的静态库文件,然后在.pro里链接这个静态库,同时不需要复制dll文件
内容的提问来源于stack exchange,提问作者Sonicpath




