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} 目錄即可.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章