下载地址(FTP): ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3.tar.gz 使用版本: 2.95.3 软件包大小: 7 MB 估计所需硬盘空间: 104 MB |
安装 gcc-2.95.3 有两个原因。第一,内核开发者建议使用 gcc-2.95.3 来编译内核。第二(也是更重要的原因),有一些不开放源码的软件包(如Netscape Navigator, Yahoo Pager)和预编译的软件包(如Mozilla)是连接到gcc-2.95.3 库文件上的。
下载 gcc 补丁:http://downloads.linuxfromscratch.org/blfs-patches.
打两个补丁,一个是修正编译错误,另一个是阻止 fixincludes 脚本运行。
patch -Np1 -i ../gcc-2.95.3-1.patch && patch -Np1 -i ../gcc-2.95.3-no-fixinc.patch |
gcc 开发组推荐在另一个目录里编译。
mkdir ../gcc-build && cd ../gcc-build |
配置gcc以编译 c 和 c++ 编译器,并且打开相关的 c++ 参数。
../gcc-2.95.3/configure \ --prefix=/opt/gcc2 \ --enable-shared --enable-languages=c,c++ \ --enable-threads=posix |
编译和安装 gcc,并删除不需要的目录(根据你的平台修改一下命令中的i686-pc-linux-gnu).
make bootstrap && make install && ln -sf gcc /opt/gcc2/bin/cc && rm -rf /opt/gcc2/{i686-pc-linux-gnu,info,man} |
查找一下安装的库文件.
L=`find /opt/gcc2/lib -name "*libstdc++*.so" -type f` && IL=`basename $L` |
把 c++ 库文件移动到标准的库文件目录中,就不用把 /opt/gcc2/lib 目录加到 /etc/ld.so.conf 文件里了。
for i in /opt/gcc2/lib/*.so*; do mv -f $i /usr/lib; ln -sf /usr/lib/`basename $i` /opt/gcc2/lib; done |
创建商业软件和预编译软件需要的符号链接.
ln -sf $IL /usr/lib/libstdc++-libc6.1-1.so.2 && ln -sf $IL /usr/lib/libstdc++-libc6.2-2.so.3 && ln -sf $IL /usr/lib/libstdc++-libc6.3-2.so.3 |
和大多数库一样,这里不需要做额外的配置。不过,库文件的路径如 /usr/lib 或 /usr/local/lib 应该在 /etc/ld.so.conf 文件中,这样 ldd 才能找到这个库。在检查了这一点后,要以 root 的身份运行 /sbin/ldconfig 。
上面的安装指导创建了 BLFS 中所需要的符号链接,如果其他包找的与我们创建的不同,你也可以自己创建,以满足需要。
如果你只需要 gcc-2.95.3 库文件,大可以放心地删除 /opt/gcc2 目录。
当你需要使用 gcc-2.95.3 而不是你系统里的编译器时,在编译那个软件包前,把 /opt/gcc2/bin 加到你 PATH 环境变量的最前面。