aarch64交叉编译dfu-programmer

这里需要说明一下的是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

 

 
posted @   闹闹爸爸  阅读(997)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示