Libg++ 使用了数学库的部分,因此需要链接到 libm。由于您现有的 libg++ 将使用旧库编译,您将需要使用 glibc 重新编译 libg++ 或获取二进制副本。libg++ 的最新源代码以及与 glibc 链接的二进制文件(适用于 x86)可以在 ftp://ftp.yggdrasil.com/private/hjl/ 找到。
如果您已将 glibc 安装为测试库,则需要将文件安装到您安装 glibc 的目录中(例如,对于前面部分中的示例,为 /usr/i486-linuxglibc2
)。如果您从二进制包安装(我建议这样做,因为我从未成功以这种方式编译 libg++),您需要将文件解压到临时目录,并将所有 usr/lib/
文件移动到 <install directory>/lib/
目录,将 usr/include/
文件移动到 <install directory>/include/
目录(记住首先删除您的 include/g++
链接!),并将 usr/bin/
文件移动到 <install directory>/bin/
目录。
如果您已将 glibc 安装为主要库,如果您仍然希望能够使用旧的 libc 编译 g++ 程序,则首先需要将旧的 libg++ 文件移动到旧的 libc 目录中。可能最简单的方法是像上一节中那样安装使用 libc 5 编译的新 libg++ 副本,然后正常安装 glibc 版本。
如果您尝试使用非主要 libc 编译 C++ 程序,您将需要包含 g++ include 目录,在上面的示例中,对于测试 glibc 安装,这将是 /usr/i486-linuxglibc2/include/g++
,对于主要 glibc 安装,这将是 /usr/i486-linuxlibc5/include/g++
。这通常可以通过附加 $CXXFLAGS
变量来完成
CXXFLAGS = -nostdinc -I/usr/i486-linuxglibc2/include -I/usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include -I/usr/i486-linuxlibc5/include/g++ -b i486-linuxglibc2