【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件

0、前言

参考资料:
《野火 Linux 基础与应用开发实战指南基于 i.MX6ULL 系列》PDF 第24章
参考视频:
https://www.bilibili.com/video/BV1JK4y1t7io?p=26&vd_source=fb8dcae0aee3f1aab700c21099045395

【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第1张图片
注意,一定要记得把虚拟机的网络适配器设置为桥装模式,需要下载东西的时候改回NAT模式

0.1 GLIBC_2.34 not found

虚拟机的版本太高了:一直解决不了,搞个18版本的应该就好了???
在这里插入图片描述
【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第2张图片
解决过程:
开发主机(我的台式电脑的虚拟机VMware的ubuntu),ubuntu下载回18.04低版本,重新运行上面的步骤,成功!!
注意,一定要记得把虚拟机的网络适配器设置为桥装模式,需要下载东西的时候改回NAT模式
【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第3张图片
【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第4张图片

0.2 开发板debian的/mnt里没文件

/mnt里面没有找到文件,是因为开发主机的网络适配器没有改回桥装模式!
【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第5张图片
改回来以后,在主机打ifconfig,然后再开发板写:

sudo mount -t nfs 192.168.1.100:/home/embedfire/workdir /mnt

再cd~ 再cd回/mnt ,就出现啦
【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第6张图片

1、在 ARM 板上运行 x86_64 平台的程序

ARM 板是野火的开发板,x86_64 平台是电脑主机。

先在开发板写挂载指令:

 sudo mount -t nfs 192.168.1.100:/home/embedfire/workdir /mnt
//将192.168.1.104是开发主机的ip(NFS服务端IP),因此该指令将开发主机的“/home/embedfire/workdir”地址挂载到开发板的“/mnt”

【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第7张图片
在这里插入图片描述

2、安装并使用交叉编译工具链

【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第8张图片

2.1 使用 APT 安装 ARM-GCC

【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第9张图片
【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第10张图片

2.2 交叉编译 Hello World 程序

【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第11张图片
【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第12张图片
P319

虚拟机的版本太高了:一直解决不了,搞个18版本的应该就好了???
在这里插入图片描述
【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第13张图片
解决过程:
开发主机(我的台式电脑的虚拟机VMware的ubuntu),ubuntu下载回18.04低版本,重新运行上面的步骤,成功!!
注意,一定要记得把虚拟机的网络适配器设置为桥装模式,需要下载东西的时候改回NAT模式
【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第14张图片
【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第15张图片

3、如何选择编译器

【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第16张图片
【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第17张图片
【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第18张图片
【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第19张图片
【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第20张图片
【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第21张图片

4、编译器类型对程序的影响

4.1 安装软浮点编译器

【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第22张图片
【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第23张图片

4.2 运行软浮点动态编译的程序

【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第24张图片
【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第25张图片

4.3 开发板的 glibc 库类型

/mnt里面没有找到文件,是因为开发主机的网络适配器没有改回桥装模式!
【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第26张图片
改回来以后,在主机打ifconfig,然后再开发板写:

sudo mount -t nfs 192.168.1.100:/home/embedfire/workdir /mnt

再cd~ 再cd回/mnt ,就出现啦
【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第27张图片

是 readelf -h /lib/libc.so.6
【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第28张图片

4.4 运行软浮点静态编译的程序

【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第29张图片
【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第30张图片
【野火i.MX6NULL开发板】ARM-GCC 和开发板的 HelloWorld(ubuntu主机和野火开发板debian交叉编译)、开发板的/mnt里没文件_第31张图片

你可能感兴趣的:(Linux,arm开发,ubuntu,debian)