【嵌入式Linux学习】6、交叉编译环境的搭建,单文件编译Hello Linux!

举报
ReCclay 发表于 2022/02/21 23:49:07 2022/02/21
【摘要】 Linux系统版本使用的是Ubuntu18.04 交叉编译工具链是arm-linux-gcc-4.5.1 【可到<这里>获取,提取码:8e40 】 一、交叉开发 由于嵌入式系统硬...

Linux系统版本使用的是Ubuntu18.04
交叉编译工具链是arm-linux-gcc-4.5.1 【可到<这里>获取,提取码:8e40 】

一、交叉开发

由于嵌入式系统硬件上的特殊性,一般不能安装发行版的LINUX系统,例如FLASH存储空间很小,没有足够的空间安装;或者处理器很特殊,也没有发行版的LINUX系统可用。所以需要专门为特定的目标板定制LINUX操作系统,这必须要相应的开发环境。于是人们想到了交叉开发模式。
在开发主机上,可以安装开发工具,编辑,编译目标板的LINUX引导程序,内核和文件系统,然后再目标板上运行。通常这种在主机环境下开发,在目标板上运行的开发模式叫作交叉开发。

二、交叉编译环境arm-linux-gcc-4.5.1搭建

一开始Ubuntu处于普通用户模式

【注】正式搭建之前,请注意如果自己的Ubuntu版本是64位的,由于缺少32位的运行库,最后即使安装好交叉编译工具,会提示找不到此文件或目录。解决办法:命令行分别运行以下命令,安装32位运行库。

sudo apt-get install libc6-i386
sudo apt-get install lsb-core
sudo apt-get update
sudo apt-get install lib32z1

  
 
  • 1
  • 2
  • 3
  • 4

1、将arm-linux-gcc-4.5.1压缩包直接从主机拖曳到虚拟机的主目录下【可以直接拖是因为VMwareTools的功劳】

在这里插入图片描述

2、在该文件夹下,空白处右击然后选择“在终端打开”。
在这里插入图片描述

3、输入tar xzvf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz -C /进行解压【注意使用tab自动补全文件名字】

在这里插入图片描述
在这里插入图片描述
解压后的文件放到了
在这里插入图片描述

4、接下来配置系统环境变量,把交叉编译工具链的路径添加到环境变量PATH中去,这样就可以在任何目录下使用这些工具。

环境变量是什么?
例如path,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。如果上面不加入环境变量,要运行arm-linux-gcc这个程序,则每次都要把arm-linux-gcc的完整路径写出来。/usr/local/arm/4.4.3/binarm-linux-gcc 文件名 -o 输出文件名。这样非常的麻烦,所以加到path里面,让电脑知道这个程序在哪里。

输入gedit /root/.bashrc
在最后一行后加入export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin

在这里插入图片描述

5、在终端输入source ~/.bashrc命令或者重启电脑即可,使环境变量生效,然后输入arm-linux-gcc -v,如果安装成功将会输出 arm-linux-gcc的版本号。

在这里插入图片描述

6、【小试牛刀】交叉编译 Hello.c !

1)、在主目录下(当然还可以是其他目录)新建一个hello.c,键入以下代码

# include<stdio.h>
int main()
{
	printf("Hello Linux!\n");
	return 0;
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

2)、在终端输入arm-linux-gcc hello.c -o hello,进行交叉编译。

注意到编译完之后会生成一个hello文件。

在这里插入图片描述

注意:这里生成的hello文件并不能像gcc编译出来的文件那样,直接使用“./hello”命令,执行并显示内容。因为它是一个二进制文件,只能下载到开发板上执行,这里没有开发板不在演示执行结果。

3)、如果在PC终端输入./hello,是不能不运行的,会出现下面错误。
在这里插入图片描述

文章来源: recclay.blog.csdn.net,作者:ReCclay,版权归原作者所有,如需转载,请联系作者。

原文链接:recclay.blog.csdn.net/article/details/101423820

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。