交叉编译环境搭建
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
交叉编译环境搭建
一、Emdebian介绍
Emdebian vision
In the Emdebian vision someone wishing to build a GNU / Linux based device would:
1. Port the linux kernel to their hardware (including writing any specific
device drivers).
2. Select the prebuilt emdebian packages needed to support their
application.
3. Package their application as Debian package(s) using Debian and
Emdebian tools.
4. Build a root filesystem using Emdebian tools from the steps above. Emdebian is involved in steps 2,3,4 above (there are far too many embedded device hardware variations to make prebuilt kernels practical).
Thus EmDebian is a binary distribution for embedded devices (whereas most of the other contenders in this space are source distributions [of course being Debian and open source the source code is still available if required].
What emdebian does
In short, what EmDebian does is wrap around the regular debian package building tools to provide a more fine grained control over package selection, size, dependencies and content to enable creation of very small and efficient debian packages for use on naturally resource limited embedded targets.
二、搭建GCC编译开发环境
安装G++/GCC编译环境
sudo apt-get install gcc g++ make gdb
可以使用man命令查看GCC和G++的帮助信息。
还可以通过gcc –v/–version命令查看其版本信息,通过这些信息我们能够了解到编译器的一些情况。
安装相应的开发帮助文件
使用以下命令安装开发所需的帮助文档,这些文档包括了linux API函数的说明和例子等等。
sudo apt-get install manpages-dev manpages-posix-dev libstdc++6-4.4-doc
安装时,系统会将关联的软件包一并安装。
安装结束后,即可测试一下相关的帮助文档。
三、搭建GCC交叉编译开发环境
我们采用emdebian提供的已配置好的交叉编译器,这样做可降低初学者的入门难度。当然,传统的嵌入式开发还是建议自己编译配置交叉编译器,以此得到一个更适合自己项目的开发环境。比如:得到一个支持uclibc库的编译器;得到一个支持定点运算的编译器等等。关于如何定制一套属于自己的交叉编译器,这个问题我们将留到以后的课程中详细讲解。在此,我们可以先认为emdebian提供的交叉编译器就是我们需要的。
添加emdebian网站提供的软件包源
使用nano命令编辑系统的/etc/apt/sources.list软件源列表文件,在其中添加emdebian网站提供的软件包源地址。
sudo nano /etc/apt/sources.list
除了testing版本的软件包源外,我们还可使用stable版本的。
deb /debian/ stable main
deb-src /debian/ stable main
debian的程序版本管理机制将软件分为了unstable, testing, stable三个版本,其中stable为稳定的版本,但版本也较unstable和testing低一些。
更新软件源信息安装源的数字证书
使用apt-get update命令更新软件源的包描述信息,通过这些信息,我们可以知道一个软件源提供哪些版本的安装软件及源代码包。
sudo apt-get update
通过安装emdebian-archive-keyring就可以安装emdebian网站提供的软件源的数字证书,数字证书是一种安全认证机制,有了数字证书就可以避免安装到非法网站提供的软件源。
sudo apt-get install emdebian-archive-keyring
安装G++/GCC交叉编译开发环境
在emdebian软件源中,将一个类型的交叉编译开发环境分为了13个软件包。这些软件包括了:binutils, cpp, g++, gcc, gdb, libc库, libstdc++库, linux头文件等等。可以通过apt-get install命令进行安装,以下我们已arm-linux-gnu为例,安装这一套交叉编译器的软件包:支持OABI接口的编译器安装包:
binutils-arm-linux-gnu (版本2.18.1~cvs20080103-7)
cpp-4.3-arm-linux-gnu (版本4.3.2-1.1)
g++-4.3-arm-linux-gnu (版本4.3.2-1.1)
gcc-4.3-arm-linux-gnu (版本4.3.2-1.1)
gcc-4.3-arm-linux-gnu-base (版本4.3.2-1.1)
libc6-arm-cross (版本2.7-18)
libc6-dev-arm-cross (版本2.7-18)
libgcc1-arm-cross (版本1:4.3.2-1.1)
libstdc++6-4.3-dev-arm-cross (版本4.3.2-1.1)
libstdc++6-4.3-pic-arm-cross (版本4.3.2-1.1)
libstdc++6-arm-cross (版本4.3.2-1.1)
linux-kernel-headers-arm-cross (版本2.6.18-6)
gdb-arm-linux-gnu (版本6.8-3)
支持EABI接口的编译器安装包:
binutils-arm-linux-gnueabi (2.18.1~cvs20080103-7)
cpp-4.3-arm-linux-gnueabi (4.3.2-1.1)
g++-4.3-arm-linux-gnueabi (4.3.2-1.1)
gcc-4.3-arm-linux-gnueabi (4.3.2-1.1)
gcc-4.3-arm-linux-gnueabi-base (4.3.2-1.1)