gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu交叉编译Arm Linux环境下的身份证读卡器so库操作步骤
创始人
2024-04-18 00:29:15

1、配置环境变量

①将gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar解压至/home/eastcoms/

sudo或者root运行命令 :sudo tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar -C /home/eastcoms

.tar用 -xvf

.gz用 -zxvf

.bz2用 -jxvf

.xz用 -Jxvf

②修改环境变量 

 命令:sudo gedit /etc/profile

在最后面加上:

export PATH=$PATH:"/home/eastcoms/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin"

或者:

export PATH="/home/eastcoms/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin:$PATH"

③使环境变量生效(相当于重启)命令:source /etc/profile

查看编译器是否存在,以及版本是否和交叉编译链7.5.0一致

命令:aarch64-linux-gnu-gcc -v  或者 aarch64-linux-gnu-g++ -v

如果一致,则表示配置成功,可以用交叉编译工具进行编译文件了

2、交叉编译libusb

①下载libusb 然后解压 链接:https://libusb.info/  downloads->latest soruce

②配置交叉编译环境和输出目录:

首先进入libusb文件夹打开终端:

sudo ./configure --host=aarch64-linux --prefix=/home/eastcoms/libusb --disable-udev CC=/home/eastcoms/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc CXX=/home/eastcoms/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++

其中:

--host=aarch64-linux表示该软件编译完成后在aarch64-linux平台上运行,其他的还有arm-linux、x86_64-linux等

--prefix后面为libusb库安装目录/home/eastcoms/libusb

--disable表示禁用功能

CC表示指定gcc交叉编译器

CXX表示指定g++交叉编译器

③编译、安装libusb

命令:make

命令:make install

进入/home/eastcoms/libusb查看是否生成include和lib文件夹,进入lib文件夹查看文件 file libusb-1.0.so.0.3.0,可以看到是ARM aarch64的即表示编译成功。

3、编译读卡代码

aarch64-linux-gnu-gcc donsee.c dllMain.c utf.c -shared -fPIC -o libdonsee.so -lusb-1.0 -ldl

aarch64-linux-gnu-gcc donseeTest.c -o output ./libdonsee.so

如果编译报错,提示找不到libusb库,则需要把编译好的libusb-1.0(含里面的libusb.h)文件夹拷贝到交叉编译器include文件夹里面,拷贝文件夹加上 -r

cp -r /home/eastcoms/libusb/include/libusb-1.0 /home/eastcoms/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/libc/usr/include

cp -r /home/eastcoms/libusb/include/libusb-1.0 . (.表示当前目录)

拷贝libusb-1.0.a 到lib文件夹

cp /home/eastcoms/libusb/lib/libusb-1.0.* /home/eastcoms/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/libc/usr/lib

编译完成,file命令可以查看文件类型是 arm aarch64是我们使用的交叉编译链。

删除文件夹和里面所有文件指令:rm -rf  /home/eastcoms/libusb   删除libusb文件夹和里面文件

相关内容

热门资讯

脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...