這里需要說明一下的是dfu-programmer的編譯需要依賴於libusb-1.0庫,需要先交叉編譯usblib-1.0庫。
交叉編譯usblib-1.0
usblib-1.0源碼下載:
https://github.com/libusb/libusb/releases
cd /root/ tar -xvf libusb-1.0.23.tar.bz2 cd libusb-1.0.23/ mkdir build ./configure --host=aarch64-linux-gnu --prefix=/root/libusb-1.0.23/build/ CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++
這時會報如下錯誤:
configure: error: udev support requested but libudev header not installed
在configure里面加上--disable-udev選項,重新配置。
./configure --host=aarch64-linux-gnu --prefix=/root/libusb-1.0.23/build/ CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ --disable-udev
配置成功后依次執行:
make make install
在/root/libusb-1.0.23/build/lib/目錄下會生成libusb的動態庫。
[root@jz4775dev]# ls build/lib/ libusb-1.0.a libusb-1.0.la libusb-1.0.so libusb-1.0.so.0 libusb-1.0.so.0.2.0 pkgconfig
交叉編譯dfu-programmer
dfu-programmer源碼下載: https://github.com/dfu-programmer/dfu-programmer
cd /root/ unzip dfu-programmer-master.zip cd dfu-programmer-master mkdir build ./configure --prefix=/root/dfu-programmer-master/build/ --host=aarch64-linux-gnu CC=aarch64-linux-gnu-gcc LDFLAGS=-L"/root/libusb-1.0.23/build/lib/" CPPFLAGS=-I"/root/libusb-1.0.23/build/include" make make install
這時在/root/dfu-programmer-master/build/bin/目錄下會生成dfu-programmer二進制文件。
[root@jz4775dev]# file build/bin/dfu-programmer build/bin/dfu-programmer: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 3.7.0, BuildID[sha1]=a0