该软件包的详细信息可以在第 8.26.2 节 “GCC 的内容”中找到。
在构建第二遍的 GCC时,我们不得不暂缓安装 C++ 标准库,因为当时没有编译器能够编译它。我们不能使用那一节构建的编译器,因为它是一个本地编译器,不应在 chroot 外使用,否则可能导致编译产生的库被宿主系统组件污染。
Libstdc++ 是 GCC 源代码的一部分。您应该先解压
GCC 压缩包并切换到解压出来的 gcc-10.2.0
目录。
创建一个符号链接,允许在 GCC 源码树中构建 Libstdc++:
ln -s gthr-posix.h libgcc/gthr-default.h
为 Libstdc++ 创建一个单独的构建目录,并切换到该目录:
mkdir -v build cd build
准备编译 Libstdc++:
../libstdc++-v3/configure \ CXXFLAGS="-g -O2 -D_GNU_SOURCE" \ --prefix=/usr \ --disable-multilib \ --disable-nls \ --host=mips64el-lfs-linux-gnuabi64 \ --disable-libstdcxx-pch
配置选项的含义:
CXXFLAGS="-g -O2
-D_GNU_SOURCE"
这些编译开关在构建完整的 GCC 时,由顶层目录 Makefile 传递。
--host=mips64el-lfs-linux-gnuabi64
我们需要模拟该软件包作为完整编译器的一部分构建时发生的过程。在完整构建时,GCC 构建系统会传递该选项。
--disable-libstdcxx-pch
这个开关防止安装预编译包含文件,它在当前阶段没有必要。
运行以下命令编译 Libstdc++:
make
安装这个库:
make install
该软件包的详细信息可以在第 8.26.2 节 “GCC 的内容”中找到。