交叉编译器的制作

来源:互联网 发布:网络语笔芯是啥意思 编辑:程序博客网 时间:2024/05/29 17:10

为了以后能在arm开发板上运行pc端上的程序,所以必须制作一个交叉编译器,我用的是buildroot-2012.02版本
*交叉编译器制作步骤:
*一.准备交叉编译器源码包
1. 一般我们要把源码包放到我们自己虚拟机的/opt目录下,但这不是绝对的,为的是以后能使用郭工的一些源码包能够成功的编译,由于在linux安装后,/opt目录只有root用户才具有写的权限,所以当我下载buildroot-2012.02.tar.bz2源码包到/opt目录下时要设置root权限。
这里写图片描述
2.接着在虚拟机终端用wget命令下载源码包,具体方法为:wget https://buildroot.org/downloads/buildroot-2012.02.tar.bz2当然也可以直接在windows下载好后传到linux上,由于我这样子做导致有些源码包没有全部传上去,后来编译总是出错,检查发现是我的虚拟机不能上网,我就直接用的wget命令。
这里写图片描述
3.在/opt目录下查看源码包是否下载成功,在该目录下如果显示出了你要的源码包则成功下载好了,然后对其源码包进行解压,linux命令 tar -xjf buildroot-2012.02.tar.bz2,解压好后则会产生一个buildroot-2012.02的文件夹,如下图
这里写图片描述
这样buildroot-2012.02的源码包就准备好了,接下来就可以配置交叉编译器了。
二.配置交叉编译器
在编译交叉编译器之前,配置好交叉编译器,选择要依赖的软件包以及哪些版本。输入以下命令则开始配置交叉编译器。
这里写图片描述
输入make menuconfig后系统会出现如下界面
这里写图片描述
1.Target Architecture默认的是i386的编译器,因为以后要在arm上运行程序,则这里要改为arm,第二项里面要改为arm920t,主要是为了学习方便,这里我是用的是s3c2440的cpu,以后可以根据自己的需要选择相应cpu的类型,然后这里面的参数也设置为相应的类型,这里可以通过cpu的datasheet来查看是基于哪个arm核的
这里写图片描述
这里写图片描述
注意:这里选中相应选项,然后按Enter键就可以了。
2.配置Build options
这里开始配置Build options的相应选项,如下:
这里写图片描述
这里默认路径为 (TOPDIR)/dl,然而应该要把它改为(TOPDIR)/buildroot-2012.02,要特别注意,下面默认是 (BASE_DIR)/HOST,因为以后要用到郭工的代码,所以这里我做出来的交叉编译器所放的路径要要改为$(TOPDIR)/arm920t
这里写图片描述
3.配置Toolchain
接下来配置Toolchain选项,这里主要是选择linux内核头文件的版本,GNU/GCC相关工具链的版本,相关选项如图所示,注意“Kerner Headers options”这里我们先要设置“Linux 2.6 (manually specified version),然后再输入“linux version”的版本为2.6.37。
这里写图片描述
这里写图片描述
这里写图片描述
接着并选择enable C++ support 和enable stack protection support。
这里写图片描述
4.其他配置
在完成上面的配置后,剩下的配置就比较简单了:
“System configuration —>”使用默认的选项,不要作修改;
“Package Selection for the target —>”这里我们只选择今后经常需要的两个库文件:
Package Selection for the target —>
Libraries —>
Compression and decompression —>
[*] lzo
[*] zlib
这里写图片描述
这里写图片描述
这里写图片描述

“Filesystem images —>”全部取消,不要选;

这里写图片描述

“Bootloaders —>”全部取消,不要选;**

这里写图片描述
“Kernel —>”全部取消,不要选;

这里写图片描述

这里写图片描述

注意:最后所有配置都配置好后,一定要记得保存!!!一定要记得保存!!!一定要记得保存!!!(重要的事情说三遍)
5.完成配置
完成配置并保存之后,在当前目录下可以看到一个.config的掩藏文件,在之后的编译过程中,makefile将根据这个文件来选择相应的软件包和特性来进行编译安装。
这里写图片描述
接着就开始编译安装了工作
三.编译交叉编译器
1.完成上面的所有配置之后,接下来编译就特别简单了,只需要输入make命令就可以了。这里写图片描述
这个过程特别漫长,我编译用了2个多小时,还好中途我去做了其他事,嘿嘿最后生成的交叉编译在在/opt/buildroot2012.02/arm920t
/usr/bin/路径下:
这里写图片描述

四.测试交叉编译器
首先写一个简单的小程序进行测试,我写的是hello.c的一个小程序,然后用制作好的交叉编译器进行编译,生成一个hello的可执行文件,然后用file命令查看文件属性,可以看到这个文件是在ARM下运行的,具体如下:
这里写图片描述
当我们把这个hello文件下载到ARM开发板上时,应该能运行了,制作交叉编译器原来这么简单,哈哈!!!
注意:1.交叉编译器在进行配置过程中,选中配置中的相应选项是“y”键,取消是“n”键。
2.配置交叉编译器之前设置环境变量 export TERM=vt100的目的是如果通过securecrt(其他远程登陆虚拟机软件也行)远程登陆虚拟机终端的话,防止出现乱码。

0 0
原创粉丝点击