交叉编译教程与方法

前言

交叉编译是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。也就是说,我们常用的Linux Ubuntu是X86系统,ARM开发板是ARM架构,在Ubuntu采用gcc编译出来的文件是不能直接在开发板上运行的,这时需要交叉编译才能在开发板上运行。

1.下载交叉编译工具链

首先进入网址:https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/ 下载gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz。下载完成之后,将压缩文件上传到Ubuntu一个目录下,这里我复制到/home/lihq目录下。
然后,解压缩:sudo tar -xvf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz

2.在opt目录下新建一个文件夹

在opt目录下新建一个文件夹

sudo mkdir /opt/gcc-arm-linux

3.将解压缩之后的交叉编译工具链复制到刚新建的文件夹

sudo cp -rf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz /opt/gcc-arm-linux/

4.在/opt/gcc-arm-linux目录下新建一个environment文件

在environment文件里写入:

export ARCH=arm
exprot CROSS_COMPILE=arm-linux-
export PATH=$:/opt/gcc-arm-linux/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin
export CC=/opt/gcc-arm-linux/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++

保存退出

5.在/home/lihq目录下新建一个.c文件

例如新建hello.c

cd /home/lihq
sudo vim hello.c

内容为:

#include "stdio.h"
int main(void)
{
	printf("hello world!\n");
}

6.回到/home/lihq目录下

①执行gcc -o test1 hello.c
②再执行file test1,可以看到test1可执行文件为X86架构的,即是在Ubuntu上可以运行的;
③执行. /opt/gcc-arm-linux/environment
④然后再执行$CC hello.c -o test2
就会生成test2可执行文件
⑤再执行file test2,可以看到test2可执行文件为ARM架构的,说明为交叉编译的

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值