PowerPC交叉编译环境的制作(一)
第一天
首先确定自己的需求:Host为 i386, Linux; Target为 powerpc, Linux。本来想使用 i386/cygwin 作为host,但是觉得实在难度太大,反正我还有一台Linux主机闲置,就先做成 i386/Linux的host吧。
必不可少的自然是查找相关资料了。找来找去最后找到了这个网站:
- CrossGCC: http://www.billgatliff.com/
根据该网站的介绍,建立交叉编译环境需要四个步骤:
- 建立生成目标代码的binutils;
- 建立生成目标代码的 gcc 框架;
- 建立运行库;
- 生成最终的 gcc。
首先将必须的软件包下载。好在 binutils、gcc、glibc 都可以在 http://ftp.gnu.org/gnu/ 下找到,不算很麻烦。最新版本分别为 binutils-2.16、gcc-4.0.0、glibc-2.3.5。另外别忘了同时下载 glibc-linuxthreads。另外,编译 gcc 时需要用到内核头文件,所以顺便将最新的内核下载。最新版本为 2.6.11.11,位于 http://www.kernel.org/ 。
然后在 Host 上建立工作目录,并在其中为最后生成的交叉编译工具建立目录:
$ cd /home/charlee
$ mkdir -p cross/tools
最后将下载的软件全部复制到 cross 目录中并解压缩。
$ cd /home/charlee/cross
$ tar xzvf binutils-2.16.tar.gz
$ tar xzvf glibc-2.3.5.tar.gz
$ tar xzvf glibc-linuxthreads-2.3.5.tar.gz
$ tar xjvf gcc-4.0.0.tar.bz2
$ tar xjvf linux-2.6.11.11.tar.bz2
然后设置环境变量以方便以后的工作:
$ export TARGET=powerpc-kurobox-linux-gnu
$ export PREFIX=/home/charlee/cross/tools
下面开始编译 binutils。binutils的说明文件中建议不要在binutils的源码目录中进行编译,所以我们为它建立编译目录,并进行配置和编译。
$ cd /home/charlee/cross
$ mkdir binutils-build
$ cd binutils-build
$ ../binutils-2.16/configure --target=$TARGET --prefix=$PREFIX
$ make all install
安装结束之后,就可以在 /home/charlee/cross/tools 目录下看到开发工具了。