Linux下安装MCC DAQ库后出现libusb未定义符号错误求助
解决方案:libusb版本过低导致未定义符号错误
问题根源
libusb_has_capability 是libusb-1.0.24及更高版本才新增的API,你当前安装的是libusb-1.0.23(从apt输出可见),系统库中不包含该符号,因此运行时触发未定义符号错误。
修复步骤
1. 卸载现有libusb-1.0包
sudo apt purge libusb-1.0-0 libusb-1.0-0-dev sudo apt autoremove
2. 从源码编译安装新版libusb
# 安装编译依赖 sudo apt install build-essential pkg-config # 下载最新稳定版libusb(可替换为官方最新版本号) wget https://github.com/libusb/libusb/releases/download/v1.0.27/libusb-1.0.27.tar.bz2 tar xf libusb-1.0.27.tar.bz2 cd libusb-1.0.27 # 编译安装 ./configure --prefix=/usr make sudo make install sudo ldconfig
3. 重新编译安装uldaq库
回到uldaq源码目录,清理之前的构建文件后重新编译:
cd /home/dvarx/Downloads/libuldaq-1.2.1 make clean ./configure make sudo make install sudo ldconfig
4. 验证示例运行
./examples/AIn
补充说明
- 你之前用
nm查看系统libusb库无符号是因为发行版提供的共享库默认是**stripped(去除符号表)**的,可通过objdump -T /lib/x86_64-linux-gnu/libusb-1.0.so.0 | grep libusb_has_capability验证符号是否存在,或查看/usr/include/libusb-1.0/libusb.h中是否包含该函数声明。 configure阶段未报错是因为它仅检查了libusb_init这类基础API,未验证新增的libusb_has_capability函数。
内容的提问来源于stack exchange,提问作者Mantabit
相关产品推荐
相关产品推荐

