解决问题:linux下指定交叉编译器之后编译出的文件仍是x86的

在编译lvgl工程时,使用makefile编译,生成的文件是x86的可执行文件,不是arm的可执行文件,尝试多种方法,最终解决。

错误如下:

方法一:未安装交叉编译器

检查交叉编译器是否安装

sudo apt update
sudo apt-get install aarch64-linux-gnu-gcc

方法二:安装了交叉编译器

1、编译器前加export

我的 aarch64-linux-gnu-gcc 交叉编译器路径在/usr/bin,所以

export CC=/usr/bin/aarch64-linux-gnu-gcc

之后再

make clean

make -j4

2、修改环境变量

2.1修改profile文件

sudo vim /etc/profile

在里面添加

export PATH=$PATH:/usr/bin/aarch64-linux-gnu-gcc

2.2修改.bashrc文件

vim .bashrc

在里面添加

export PATH=$PATH:/usr/bin/aarch64-linux-gnu-gcc

以上两个修改环境变量之后重启虚拟机,再编译工程

make clean

make -j4

然后用file查看生成文件属性

3、修改makefile

如果以上方法都无法实现编译成功,恭喜你中奖了,我也不知道哪里有问题,但有个治标的方法来实现我们的目的。

当然你可以在这之前试着打印看一下,编译的时候到底用的是哪个编译器

我的当时打印是“Using compiler: cc”,其实用的是本地gcc,这是不行的,所以只好从makefile下手来改变。

即将makefile的CC重命名一下,使得其找到该交叉编译器

然后编译,file一下生成的文件是ARM的,就ok了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值