Linux中ARM平台的交叉编译

一、什么是交叉编译

简单来说,就是在一个平台上生成另一个平台的可执行代码

二、交叉编译的作用

  • 若在嵌入式产品中安装一些开发工具进行产品开发的话,会造成资源的浪费
  • 一般的嵌入式设备的处理速度,没有个人计算机快,所以直接在嵌入式产品中进行开发,开发速度会很慢

注意:开发时候对应平台的编译器从何来? ----> 跟对应芯片的厂商索取,芯片厂商在生产芯片的时候,会对应配套一系列开发工具

三、Linux中ARM平台的交叉编译链

以下为简要描述,详情请见:ubuntu下安装交叉编译工具链

下载地址:

arm-linux-gnueabihf-gcc下载

arm-none-linux-gnueabi-gcc下载

arm-linux-gnueabihf-gcc是由 Linaro 公司基于GCC推出的的ARM交叉编译工具。可用于交叉编译ARM系统中所有环节的代码,包括裸机程序、u-boot、Linux kernel、filesystem和App应用程序。

arm-none-linux-gnueabi-gcc是 Codesourcery 公司(目前已经被Mentor收购)基于GCC推出的的ARM交叉编译工具。可用于交叉编译ARM系统中所有环节的代码,包括裸机程序、u-boot、Linux kernel、filesystem和App应用程序。

主要步骤:(虚拟机情况下)

  • 将下载好的工具放到共享文件夹中
  • 在虚拟中将工具解压
  • 配制PATH环境变量---->可以直接使用工具,而不需要添加工具所在路径

四、NFS服务器的安装

nfs服务器的作用:可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利;

可以将交叉编译后的可执行文件直接在另一平台调试、运行

  • 安装步骤:
  • 1、NFS 的下载
  • sudo apt-get  install  nfs-kernel-server
  • 2、配制NFS服务器的挂载文件
  • sudo  gedit /etc/exports
  • 在文件末尾添加: /opt/target  *(rw,sync,no_subtree_check)
  • 注意需要挂载的服务器文件路径名,该路径用户必须拥有操作权限,一般为自己家目录,即/opt/target 为自己家目录
  • 3、重启NFS服务器
  • sudo  service  nfs-kernel-server restart 
  • 4、挂载 NFS文件
  • sudo mount  -o nolock  192.xxx.x.x:/home/gec   /tmp                 //ip路径://home/用户名
  • 5、卸载
  • sudo umount 需要卸载的目录

版权声明:本文为laifengyuan1原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。