5.8. GCC-8.2.0 中的 Libstdc++

Libstdc++ 是标准的 C++ 库。需要用它来编译 C++ 代码(GCC 的一部分是用 C++ 写的),但是在构建 gcc-第 1 遍 时,我们需要推迟它的安装进程,因为依赖的 glibc,还未部署在 /tools 目录中。

Libstdc++ 是标准的 C++ 库。g++ 编译器正确运行需要它。

大致构建用时: 0.5 SBU
所需磁盘空间: 803 MB

5.8.1. 安装目标 Libstdc++

[Note]

Note

Libstdc++ 是 GCC 源文件的一部分。你首先应该解压 GCC 的压缩包,然后进入 gcc-8.2.0 文件夹。

为 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++/8.2.0

配置选项的含义:

--host=...

指示使用我们刚才编译的交叉编译器,而不是 /usr/bin 中的。

--disable-libstdcxx-threads

由于我们还没有编译 C 线程库,C++ 的也还不能编译。

--disable-libstdcxx-pch

此选项防止安装预编译文件,此步骤并不需要。

--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/8.2.0

这是 C++ 编译器搜索标准 include 文件的位置。在一般的编译中,这个信息自动从顶层文件夹中传入 Libstdc++ configure 选项。在我们的例子中,必须明确给出这信息。

编译 libstdc++:

make

安装库:

make install

该软件包的详细信息请参见: Section 6.21.2, “GCC 软件包内容”