在编译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了