%general-entities; ]> gcc-libstdc++ &gcc-version;
&gcc-url;
GCC-&gcc-version; 中的 Libstdc++ GCC tools, libstdc++ <!--para>Libstdc++ is the standard C++ library. It is needed to compile C++ code (part of GCC is written in C++), but we had to defer its installation when we built <xref linkend="ch-tools-gcc-pass1"/> because it depends on glibc, which was not yet available in /tools. </para--> <para>Libstdc++ 是 C++ 标准库,我们需要它才能编译 C++ 代码 (GCC 的一部分用 C++ 编写)。但在构建 <xref linkend="ch-tools-gcc-pass1"/> 时我们不得不暂缓安装它, 因为它依赖于当时还没有安装到 /tools 的 glibc。</para> <segmentedlist> <segtitle>&buildtime;</segtitle> <segtitle>&diskspace;</segtitle> <seglistitem> <seg>&libstdcpp-ch5-sbu;</seg> <seg>&libstdcpp-ch5-du;</seg> </seglistitem> </segmentedlist> </sect2> <sect2 role="installation"> <title>安装目标系统的 Libstdc++ Libstdc++ 是 GCC 源代码的一部分。 您应该先解压 GCC 源码包并切换到解压出来的 gcc-&gcc-version; 目录。 为 Libstdc++ 创建一个单独的构建目录,并进入它: mkdir -v build cd build 准备编译 Libstdc++: ../libstdc++-v3/configure \ --host=$LFS_TGT \ --prefix=/tools \ --disable-multilib \ --disable-nls \ --disable-libstdcxx-threads \ --disable-libstdcxx-pch \ --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version; 配置选项的含义: --host=... 使用我们刚刚编译的交叉编译器,而不是 /usr/bin 中的宿主系统编译器。 --disable-libstdcxx-threads 由于我们目前还没有构建 C 线程库,C++ 线程库也不能构建。 --disable-libstdcxx-pch 这个开关防止安装预编译头文件,在这个阶段不需要它们。 --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version; 这是 C++ 编译器搜索标准头文件的位置。在正常的构建过程中, 这项信息被顶层目录构建系统自动传递给 Libstdc++ configure 脚本。 然而我们这里没有使用顶层构建系统,因此必须明确给出这项信息。 运行以下命令编译 Libstdc++: make 安装这个库: make install <para>关于该软件包的详细信息可以在 <xref linkend="contents-gcc"/> 中找到。</para> </sect2> </sect1>