交叉编译器的制作

   本篇文章是介绍交叉编译以及如何制作交叉编译器。

一、什么是交叉编译?

工欲善其事,必先利其器。我们搞嵌入式开发的,需要在不同的平台编译出我们板子所需要的程序,因此需要一种编译工具,交叉编译器就是在一种平台上编译出能运行在体系结构不同的另一种平台上的程序。比如我们在x86平台下的PC上编译出能运行在ARM平台的程序。而交叉编译就是在某个计算机环境运行的编译程序可以编译出另一种计算机平台的二进制程序,这种编译器就叫做交叉编译器。

二、怎样进行交叉编译?

要进行交叉编译,需要在主机安装交叉编译工具链,包括交叉编译的编译器、连接器、目标库等等,GNU专门提供了gcc编译器针对ARM目标平台的支持,由于gcc的开源特点,我们可以手动编译生成符合自己需要的ARM gcc编译器,一般在Linux平台上ARM的交叉编译器是arm-Linux-gcc。我们需要的东西有:

1.磁盘空间:交叉编译器工具链配置过程中会生成大量的中间文件,至少需要500MB磁盘空间,建议预留1GB磁盘空间。

2.源代码:建立交叉编译工具链是从源代码编译,包括各种库,编译器,内核代码等等。

3.命令行:必须使用GNU bash shell。如果不是,使用chsh命令修改当前shell。

4.其他工具:交叉编译工具链用到的工具有bison、gmak、gsed、我们的系统应该安装这些东西。

三、交叉编译器的制作

1.首先我们得把交叉编译器放在一个有写权限的目录下,我这里放在/opt下,具体命令这里就不再赘述。

2.然后下载我们需要的源码包,我使用的是buildroot-2012.08版本的,这里是下载地址https://buildroot.org/downloads/buildroot-2010.08.tar.bz2,同样注意,这里不要下载测试版,否则可能会出错。

3.解压缩,并查看这些源码包

4.配置交叉编译器CPU类型,我们的为s3c2440,为了确保避免出现乱码,还是老套路,make menuconfig之前vt100

  进去以后修改为下面内容:

 

5.配置Buildroot Options选项

($(TOPDIR)/arm920t)Host dir”就是指定我们制作出来的交叉编译器所在的路径

6.配置Toolchain选项,这里主要是选择Linux内核头文件的版本,GNU/GCC相关工具链的版本等。具体选项如下:

















保存以后配置就完成了

这时候看一下.config文件,在之后的编译过程中,Makefile将根据这个文件来选择相应的软件包和特性来编译安装。

7.编译交叉编译器

直接make即可,编译成功的话,最后生成的交叉编译器会在/opt/buildroot-2012.08/arm920t/usr/bin/路径下:


8.测试交叉编译器

这里随便写一个C程序,然后编译的时候用arm-Linux-gcc来编译就行了

编译成功的可执行文件便可以在板子上运行了。






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值