当前位置:文档之家› 交叉编译环境搭建

交叉编译环境搭建

交叉编译环境搭建 一、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 http://www.emdebian.org/debian/ stable main deb-src http://www.emdebian.org/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) gdb-arm-linux-gnueabi (6.8-3) libc6-armel-cross (2.7-18) libc6-dev-armel-cross (2.7-18) libgcc1-armel-cross (1:4.3.2-1.1) libstdc++6-4.3-dev-armel-cross (4.3.2-1.1) libstdc++6-armel-cross (4.3.2-1.1) gcc-4.3-base-armel-cross (4.3.2-1.1) linux-libc-dev-armel-cross (2.6.26-17)

在安装过程中,一定要注意各软件包之间的版本依赖,这些依赖实际上是编译器配置的一部分,在此emdebian已为用户搭配好的了。其中gdb-arm-linux-gnu包会与之前的gdb包有冲突。解决方法如下: 找到从emdebian下载的软件包gdb-arm-linux-gnu,并将其拷贝到一个工作目录下。 cp /var/cache/apt/archives/gdb-arm-linux-gnu_6.8-3_i386.deb . 使用dpkg -x命令解压出其中的数据内容。 dpkg -x gdb-arm-linux-gnu_6.8-3_i386.deb gdb-arm-linux-gnu_6.8-3_i386 使用dpkg -e命令解压出其中的控制信息,并保存在XXX/DEBIAN目录下。 dpkg -e gdb-arm-linux-gnu_6.8-3_i386.deb gdb-arm-linux-gnu_6.8-3_i386/DEBIAN 删除文件XXX/usr/share/man/man1/gdb.1.gz,正是这个文件与gdb软件包冲突。 rm -f gdb-arm-linux-gnu_6.8-3_i386/usr/share/man/man1/gdb.1.gz 使用dpkg-deb -b命令重新打包gdb-arm-linux-gnu,生成新的软件包。 dpkg-deb -b gdb-arm-linux-gnu_6.8-3_i386 使用 dpkg -i命令手动安装gdb-arm-linux-gnu软件包。 sudo dpkg -i gdb-arm-linux-gnu_6.8-3_i386.deb

到此,交叉编译开发环境安装完毕。 四、搭建集成交叉编译开发环境 CodeBlocks集成开发环境介绍 安装提供CodeBlocks软件包的软件源 添加CodeBlocks的软件源到/etc/apt/sources.list,此软件由网站apt.jenslody.de提供。 deb http://apt.jenslody.de/ any main deb-src http://apt.jenslody.de/ any main 添加CodeBlocks依赖的库wxwidgets的软件源到/etc/apt/sources.list,此库有网站apt.wxwidgets.org提供。 deb http://apt.wxwidgets.org/ lenny-wx main deb-src http://apt.wxwidgets.org/ lenny-wx main

相关主题