⼀、交叉编译⼯具链-宿主机linuxubuntu64位-⽬标机ARMv8aarch64系统。。。交叉编译
使⽤别⼈做好的交叉编译⼯具
准备⼯作:
1. 安装ubuntu(我是虚拟机),写⼀个helloword,并gcc成可执⾏程序运⾏成功
2. 确认你的⽬标机类型,⼀定要别弄错了,我的架构是armv8 aarch64,怎么确认的?我问同学的
3. 去下载⼀个交叉编译⼯具链 参考链接: 下载链接:
我下载的是
gcc-linaro-6.3.1-2017.05-x86_64_
交叉编译⼯具链有很多获取⽅式,最好的莫过于你的板⼦产商提供,没有呢就只能⾃⼰去这⾥有⼀些获取渠道:
交叉编译
宿主机操作
1. ⽤户⽬录下新建tools/crossCompile⽬录⽤来存放⼯具,将交叉编译⼯具放⼊其中并解压我解压后获得如图所⽰
2. 进⼊解压后的⽂件夹,各种交叉编译⼯具可能会有⼀些不⼀样,但是区别不⼤我这⾥如图
3. 记住这⾥的aarch64-linux-gnu这是你交叉编译的命令,记住这⾥的bin的路径,等下要设置。
4. 修改⽤户⽬录下的⼀个隐藏⽂件.bashrc将PATH加⼊系统⽅便使⽤
vim  /home/zjh/.bashrc
在⽂件末尾加⼊
export PATH=$PATH:~/tools/crossCompile/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin
别忘了要修改为⾃⼰的bin路径
5. 激活更新刚刚的修改同样别忘了改成⾃⼰的⽤户名
source  /home/zjh/.bashrc
6. 检查环境变量是否设置成功
在终端上输⼊命令 aarch64-linux-gnu-
(注意这个和你安装的交叉编译⼯具有关如参考链接中的⼯具的话此时就应该⽤arm-linux-了 ⼀般都是你的交叉编译⼯具链名字就⾏如我只要输⼊aar 在tab系统⾃动补完aarch64-linux-gnu-) 再双键Tab键,可以看到下图,说明环境变量设置成功了
7. 输⼊
aarch64-linux-gnu-gcc -v
出现
Thread model: posix
gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05)
如果没问题就⾏有问题参考链接安装些东西,依赖库或者兼容等等。
x86架构和arm架构区别8. 验证:在准备步骤写的helloword测试程序,使⽤交叉编译命令⽣成⽬标机的可执⾏程序
aarch64-linux-gnu-gcc hello.c -o hello
编译链接后⽣成可执⾏程序,此时在电脑./hello运⾏应该报错
将⽣成的hello可执⾏⽂件传到⽬标机上
⽬标机操作
1. 将传过来的hello⽂件授予权限chmod u+x hello
2. 执⾏程序
.
/hello
运⾏成功,完成

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。