原子学习笔记2——交叉编译链安装

一、交叉编译器的安装

在 Linux 进行 C 语言里面使用 GCC 编译器进行代码编译,但是 Ubuntu 自带的 gcc 编译器是针对 X86 架构的!而我们现在要编译的是 ARM 架构的代码,所以我们需要一个在 X86 架构的 PC 上运行,可以编译 ARM 架构代码的 GCC 编译器,这个编译器就叫做交叉编译器,总结一下交叉编译器就是:
1、它肯定是一个 GCC 编译器。
2、这个 GCC 编译器是运行在 X86 架构的 PC 上的。
3、这个 GCC 编译器是编译 ARM 架构代码的,也就是编译出来的可执行文件是在 ARM 芯片上运行的。
交叉编译器中“交叉”的意思就是在一个架构上编译另外一个架构的代码,相当于两种架构“交叉”起来了。

获取到 gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz 编译器(Ubuntu是64位系统),在 Ubuntu 中创建目录:/usr/local/arm,命令如下:sudo mkdir /usr/local/arm
将编译器拷贝到此目录下进行解压。

sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz

等待解压完成,解压完成以后会生成一个名为“gcc-linaro-4.9.4-2017.01-x86_64_arm-linuxgnueabihf”的文件夹,这个文件夹里面就是我们的交叉编译工具链。
修改环境变量,使用 VI 打开/etc/profile 文件,命令如下:

sudo vim /etc/profile

打开/etc/profile 以后,在最后面输入如下所示内容:

export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin

添加完成以后的/etc/profile 如图所示:
在这里插入图片描述
修改好以后就保存退出,重启 Ubuntu 系统,交叉编译工具链(编译器)就安装成功了。

二、安装相关库

在使用交叉编译器之前还需要安装一下其它的库,命令如下:

sudo apt-get install lsb-core lib32stdc++6

三、交叉编译器验证

首先查看一下交叉编译工具的版本号,输入如下命令:

arm-linux-gnueabihf-gcc -v

如果交叉编译器安装正确的话就会显示版本号,如图所示:
在这里插入图片描述
可以看出当前交叉编译器的版本号为 4.9.4,说明交叉编译工具链安装成功。
Ubuntu 自带的是 GCC 编译器,我们用的是命令“gcc”。要使用刚刚安装的交叉编译器的时候使用的命令是“arm-linux-gnueabihf-gcc”,“arm-linux-gnueabihfgcc”的含义如下:
1、arm 表示这是编译 arm 架构代码的编译器。
2、linux 表示运行在 linux 环境下。
3、gnueabihf 表示嵌入式二进制接口。
4、gcc 表示是 gcc 工具。

安装完成之后,在使用之前先对交叉编译工具的环境进行设置,使用 source 执行安装目录下的
environment-setup-cortexa7hf-neon-poky-linux-gnueabi 脚本文件即可,如下所示:

source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

/opt/fsl-imx-x11/4.1.15-2.1.0 便是笔者在 Ubuntu 系统下安装交叉编译工具时对应的安装目录,大家根据自己的情况设置正确的路径。

最好的验证方法就是直接编译一个例程,编写一个hello world,接下来对代码进行编译:
在这里插入图片描述
CC 变量其实就是交叉编译工具,所以 CC 环境变量其实就是 ARM 架构下的 gcc 编译器—交叉编译工具 arm-poky-linux-gnueabi-gcc,后面指定了一些选项,这些选项就不用管了;编译成功之后,会生成可在开发板上运行的可执行文件 testApp,使用 file 命令可以查看 testApp 可执行文件的类型。
可以看出该文件是一个 32 位 ARM 架构下的可执行文件。

  • 15
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值