(本次实验以Toybrick RK3399ProD实验板为例)
最近学习了嵌入式Linux,在电脑上安装虚拟机运行Linux系统(我使用RHEL 6)
由于虚拟机里安装了arm-Linux,发现在RHEL6里面通过arm-linux-gcc命令编译后的可执行文件在无法在开发板上运行
经过查询,发现是因为arm-Linux-gcc是32位的编译器,而rk3399处理器是64位处理器,经过arm-linux-gcc编译的文件只能在32位处理上运行
解决这个问题需要先安装64位的编译器gcc-linaro-aarch64-linux-gnu-4.9-2014.07_linux
将下载的文件放置在虚拟机的共享目录下,通过解压命令
tar jxvf gcc-linaro-aarch64-linux-gnu-4.9-2014.07_linux.tar.bz2 -C /
注:这里不能直接在共享目录下解压,因为windows不会区分大小写,而Linux严格区分大小写,此时就会将一些文件覆盖掉
解压完成后输入命令
vim /root/.bashrc
按a进入插入模式,在文件末尾添加
export PATH=/gcc-linaro-aarch64-linux-gnu-4.9-2014.07_linux/bin:$PATH
保存退出
输入命令使环境变量
source ~/.bashrc
此时再运行 aarch64-linux-gnu-gcc,就可看到结果 no input files,可知交叉编译器可以运行了
此时编译的文件就可以在板子上使用了