libusb 和 usbutils 的交叉编译

libusb 下载地址: https://sourceforge.net/projects/libusb/

usbutils 下载地址:https://mirrors.edge.kernel.org/pub/linux/utils/usb/usbutils/

我使用的是 libusb-1.0.22 和 usbutils-005

 

libusb 交叉编译:

./configure CC={编译器目录}/mipsel-linux-gcc --build=i686-linux --host=mipsel-linux --prefix={安装目录} --disable-udev && make && make install

usbutils 交叉编译:

./configure CC={编译器目录}/mipsel-linux-gcc --build=i686-linux --host=mipsel-linux --prefix={安装目录} --datarootdir=/tmp

执行以上 configure 会报错如下,找不到 libusb 的 pkg-config,此时需要指定 PKG_CONFIG_PATH={libusb所在目录}

configure: error: Package requirements (libusb-1.0 >= 1.0.0) were not met:

Package libusb-1.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libusb-1.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libusb-1.0' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables LIBUSB_CFLAGS
and LIBUSB_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

 

再次 configure 会报错如下,需要更改 usbhid-dump/configure,指定 libusb-1.0.so 所在目录

checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for libusb_init in -lusb-1.0... no
configure: error: in `/home/chengc/otherGround/software/usbutils-005/usbhid-dump':
configure: error: libusb is required, but was not found, abort.
                     Try installing libusb-1.0-0-dev or libusb1-devel.
See `config.log' for more details
configure: error: ./configure failed for usbhid-dump

再次 configure,结果如下:

config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands

	usbutils 005
	=============

	prefix:                 /home/**************
	datarootdir:            /tmp
	datadir:                ${datarootdir}
	mandir:                 ${datarootdir}/man

	usb.ids:                ${datarootdir}/usb.ids
	zlib:

	compiler:               /opt/trendchip/mipsel-linux-glibc-4.6.3-kernel3.18/usr/bin/mipsel-linux-gcc
	cflags:                 -g -O2
	ldflags:

make 时可能报错如下,将 libusb 安装目录中的 include/libusb-1.0 拷贝到 usbhid-dump/include/ 即可 

usbutils-005/usbhid-dump/include/uhd/dev.h:31:31: fatal error: libusb-1.0/libusb.h: No such file or directory

最后 make && make install 即可。

 

lsusb 命令使用时需要 usb.ids 这个文件,这个文件在 usbutils 根目录下,将这个文件 拷贝到 编译 usbutils 时指定的 {datarootdir} 目录即可.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
libusb交叉编译涉及到在一个平台上为另一个平台编译libusb库。下面是一个关于如何进行libusb交叉编译的步骤: 1. 解压libusb库:使用tar命令解压libusb的压缩包。例如,可以使用以下命令: ``` tar -xvf libusb-1.0.9.tar.bz2 ``` 2. 进入libusb目录:使用cd命令进入解压后的libusb目录。例如,可以使用以下命令: ``` cd libusb-1.0.9 ``` 3. 根据不同的编译器选择不同的配置命令: - 如果在PC虚拟机的Linux平台上使用32位编译器,可以使用以下命令: ``` ./configure --prefix=$(pwd)/_install_libusb --disable-shared --enable-static CC=gcc ``` - 如果在PC虚拟机的Linux平台上使用64位编译器,可以使用以下命令: ``` CFLAGS="-O -fPIC" ./configure --prefix=$(pwd)/_install_libusb --disable-shared --enable-static CC=gcc ``` - 如果在arm平台上使用arm-linux-gcc编译器,需要指定主机为arm-linux,可以使用以下命令: - 对于arm 32位编译器: ``` ./configure --host="arm-linux" --prefix=$(pwd)/_install_libusb --disable-shared --enable-static CC=arm-linux-gcc ``` - 对于arm 64位编译器: ``` CFLAGS="-O -fPIC" ./configure --host="arm-linux" --prefix=$(pwd)/_install_libusb --disable-shared --enable-static CC=arm-linux-gcc ``` 4. 编译并安装库:使用make命令进行编译,之后使用make install命令进行安装。例如,可以使用以下命令: ``` make make install ``` 5. 完成编译:编译完成后,您可以在_install_libusb目录下找到生成的库文件和头文件。其中,libusb-1.0.a和libusb.h是我们所需的文件。 希望以上步骤能够帮助您进行libusb交叉编译。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Libusb交叉编译](https://blog.csdn.net/beArobot/article/details/88627831)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Linux aarch64交叉编译libusb库](https://blog.csdn.net/vviccc/article/details/126411782)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值