Differences

This shows you the differences between two versions of the page.

zh-cn:about:toolchain [2012/12/18 17:04] (current)
Line 1: Line 1:
 +====== OpenWrt Buildroot – About ======
 +**OpenWrt Buildroot** 包含了一系列 Makefiles 和 patches, 方便在嵌入式系统上生成交叉编译工具链和 root 文件系统. 它是在Buildroot ([[http://www.buildroot.org/]]) 的基础上做了大量修改. 交叉编译工具链使用了一个轻巧的 C 标准库, uClibc ([[http://www.uclibc.org/]]).
 +
 +交叉编译工具链是用来在你的系统上编译代码的工具集合. 其中包括编译器(这里用的是''[[wp>GNU Compiler Collection|gcc]]'' / [[http://packages.debian.org/squeeze/gcc|deb: gcc]]), 二进制工具, 比如汇编器和连接器(这里用了 ''[[wp>GNU Binutils|binutils]]'' / [[http://packages.debian.org/squeeze/binutils|deb: binutils]] ),以及c标准库[[wp>C standard library]](例如 GNU Libc, uClibc 或 dietlibc).  如果你用的是 PC, 你的编译工具链运行在 x86 处理器上, 生成的代码也是给 x86 处理器使用的. 大部分的 linix 操作系统里, 编译工具链用了 GNU libc 作为 C标准库. 这类编译工具链被成为 "host compilation toolchain", 通常, 把运行它的机器, 也就是用户用着的, 叫作 "host system". 编译工具链是由用户的发行版提供的, OpenWrt Buildroot 跟它一点关系都没有.
 +
 +正如上面所说的, 编译工具链是在你系统里面执行, 并且为主机系统的处理器生成代码的. 但是你的嵌入式系统用着不同的处理器, 所以需要这样一个交叉编译工具链: 它运行在你的主机系统上, 但是产生的代码是用在你目标系统上, (和相关[[doc:hardware:cpu|处理器]] 的 ISA). 举个例子, 如果你的主机系统是 x86 的, 而你的目标系统是 MIPS32, 你主机上普通的编译工具链运行在 x86 上, 产生代码也是给 x86 用的, 然而 交叉编译工具链运行在 x86 上, 生成的代码是给 MIPS32 用的. 
 +
 +你可能觉得奇怪, 既然可以手动编译''gcc'', ''binutils'', ''uClibc''等等所有工具, 干嘛还需要这样一个工具. 当然, 所有的事情你都可以亲自动手解决. 但是解决 ''gcc'', ''binutils'' 配置选项和版本问题, 费时费力又不好玩. OpenWrt Buildroot 通过 Makefiles 把相关流程都自动化了, 并且通过一系列的 patch, 使得每个版本的''gcc'' and ''binutils'' 都能正常运行在各种指令集架构的嵌入式系统之上.
 +
 +虽然 OpenWrt Buildroot 主要面向开发者, 但是对于最终用户而言, 用它来编译一个定制版的固件, 也是很简单的.
 +
 +
 +==== 相关文档 ====
 +  * [[http://downloads.openwrt.org/docs/buildroot-documentation.html]] 2006年完成的靠谱文档. 只有一些内容有点过时而已!
 +
 +  - [[about:toolchain|OpenWrt Buildroot – About]]
 +  - [[doc:howto:buildroot.exigence|OpenWrt Buildroot – Installation]]
 +  - [[doc:howto:build|OpenWrt Buildroot – Usage]]
 +  - [[doc:devel:feeds|OpenWrt Buildroot – Feeds]]
 +  - [[doc:techref:buildroot|OpenWrt Buildroot – Technical Reference]] {{:meta:icons:tango:48px-construction.svg.png?nolink&16}} 这篇文章 //值得一看// .
 +
 +  * Keed in mind that there are 4 methods to [[doc:howto:obtain.firmware]]

Back to top

zh-cn/about/toolchain.txt · Last modified: 2012/12/18 17:04 (external edit)