You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qt 5.12.5交叉编译树莓派3时调用libusb函数出现链接错误

解决树莓派交叉编译Qt项目链接libusb的错误

错误原因分析

从链接错误信息来看,分为两类核心问题:

  • udev依赖缺失:Linux平台下libusb依赖udev实现设备热插拔、枚举功能,交叉编译时仅链接libusb-1.0但未关联依赖的udev库,导致udev_device_get_action等符号未定义。
  • 动态链接库缺失:_dl_stack_flags、_dl_pagesize等符号来自libdl库,交叉编译时需显式链接该库以支持glibc的动态链接功能。

解决方案

修改Qt项目的.pro文件,补充缺失的链接库:

LIBS += -lusb-1.0 -ludev -ldl

注意库的顺序:依赖库需放在被依赖库之后——libusb-1.0依赖udev,因此-ludev要在-lusb-1.0之后;libdl提供动态链接支持,需最后添加。

验证步骤

  1. 清理原有编译产物:
make clean
  1. 重新执行交叉编译流程:
/home/vboxuser/raspi/qt5/bin/qmake /home/vboxuser/myproj/11-USBproject/usbCashboxExchange/usbCashboxExchange.pro -spec /home/vboxuser/raspi/qtbase/mkspecs/devices/linux-rasp-pi3-g++/ CONFIG+=debug CONFIG+=qml_debug && make

内容的提问来源于stack exchange,提问作者Artem Redko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 22:49:55