6.1. chapter, section, sect1-sect5

例 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>