例 6.1. chapter,section,sect1-sect5
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xl="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:mathml="http://www.w3.org/1998/Math/MathML" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" xml:id="crosscompiler_intro"> <title>交叉编译器简介</title> <abstract></abstract> <para></para> <para>相关旧帖:<link xl:href="http://www.crifan.com/embedded_development_cross_compiler_and_toolchain/">嵌入式开发之交叉编译器</link></para> <para></para> <para></para> <sect1 xml:id="crosscompiler_naming_rule"><title>交叉编译器的名字的命名规则</title> <para>在折腾嵌入式开发,用到交叉编译器的时候,常常会看到这样的名字:</para> <para>arm-xscale-linux-gnueabi-gcc</para> <para>arm-liunx-gnu-gcc</para> <para>等等</para> <para>其中,对应的交叉编译器的前缀为:</para> <para>arm-xscale-linux-gnueabi-</para> <para>arm-liunx-gnu-</para> <para>而关于这些名字,我之前也是没注意,或者说很模糊,不是很清楚这些名字是从何而来的。</para> <para>后来,经过折腾了crosstool-ng后,基本上明白了这些名字,是如何生成的。</para> <para>其中,貌似此交叉编译器命名的规则,应该是通用的,至少记得是Buildroot中,好像也是这样命名的。</para> <para>下面,就以crosstool-ng为例,参考我之前折腾crosstool-ng期间:</para> <para><link xl:href="http://www.crifan.com/crosstool_tuple_vendor_string_ct_target_vendor/">【整理】crosstool中如何设置xscale的Tuple’s vendor string(CT_TARGET_VENDOR)</link></para> <para>所了解到的内容,来解释解释,这些名字的含义。</para> <sect2 xml:id="crosstool_ng_crosscompiler_naming_rule"><title>crosstool-ng中交叉编译前缀的命名规则</title> <para>crosstool-ng中,交叉编译器的(前缀)的名字的命名规则是:</para> <screen>arch-vendor-kernel-system</screen> <para>对应分别是:</para> <sect3 xml:id="crosscompiler_system_part"><title>交叉编译器名字中的system部分</title> <para>system,直译为,系统</para> <para>其实主要表示的,交叉编译器所选择的库函数和目标系统</para> <para>最常见的一些值有,gnu,gnueabi,uclibcgnueabi等等。</para> <para>其中,此处有几方面的值,表示了几方面的含义:</para> <sect4 xml:id="system_uclibc"><title>system中的uclibc</title> <para>uclibc,是c库中的一种</para> <para>crosstool-ng中,目前支持三种:glibc,eglibc,uclibc</para> <para>关于三种的关系,详见:</para> <para><link xl:href="http://www.crifan.com/relation_between_uclibc_glibc_eglibc/">【整理】uclibc,eglibc,glibc之间的区别和联系</link></para> <para></para> <sect5 xml:id="system_uclibc_in_crosstool_ng"><title>crosstool-ng中system为uclibc的情况</title> <para>crosstool-ng中,和system中uclibc对应的值,应该就是"C-library"中的"C library"的值设置为"uClibc"了。</para> <screen> C-library C library (uClibc) ---> </screen> <para>对应的配置参数是:CT_LIBC_uClibc</para> <para>对应的help的解释是:</para> </sect5> </sect4> <para></para> </sect3> </sect2> <para></para> </sect1> </chapter>