一、交叉编译工具链-宿主机linux ubuntu 64位-目标机ARMv8 aarch64系统ubuntu64位

mac2024-06-05  46

交叉编译

使用别人做好的交叉编译工具

准备工作:

安装ubuntu(我是虚拟机),写一个helloword,并gcc成可执行程序运行成功确认你的目标机类型,一定要别弄错了,我的架构是armv8 aarch64,怎么确认的?我问同学的去下载一个交叉编译工具链 参考链接:link 下载链接:linaro 我下载的是

gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz

交叉编译工具链有很多获取方式,最好的莫过于你的板子产商提供,没有呢就只能自己去找这里有一些获取渠道:ARM交叉编译工具链

交叉编译

宿主机操作

用户目录下新建tools/crossCompile目录用来存放工具,将交叉编译工具放入其中并解压我解压后获得如图所示 进入解压后的文件夹,各种交叉编译工具可能会有一些不一样,但是区别不大我这里如图 记住这里的aarch64-linux-gnu这是你交叉编译的命令,记住这里的bin的路径,等下要设置。修改用户目录下的一个隐藏文件.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路径

激活更新刚刚的修改同样别忘了改成自己的用户名 source /home/zjh/.bashrc 检查环境变量是否设置成功 在终端上输入命令 aarch64-linux-gnu- (注意这个和你安装的交叉编译工具有关如参考链接中的工具的话此时就应该用arm-linux-了 一般都是你的交叉编译工具链名字就行如我只要输入aar 在tab系统自动补完aarch64-linux-gnu-) 再双键Tab键,可以看到下图,说明环境变量设置成功了输入 aarch64-linux-gnu-gcc -v

出现

Thread model: posix gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05)

如果没问题就行有问题参考链接安装些东西,依赖库或者兼容等等。参考库

验证:在准备步骤写的helloword测试程序,使用交叉编译命令生成目标机的可执行程序 aarch64-linux-gnu-gcc hello.c -o hello

编译链接后生成可执行程序,此时在电脑./hello运行应该报错 将生成的hello可执行文件传到目标机上

目标机操作

将传过来的hello文件授予权限 chmod u+x hello 执行程序 ./hello

运行成功,完成

最新回复(0)