Linux 安装g&x2B+;不更新glibc 我需要用GLYBC 2.13版本编译一个C++项目。我发现Ubuntu11.10拥有我正在搜索的glibc的verison

Linux 安装g&x2B+;不更新glibc 我需要用GLYBC 2.13版本编译一个C++项目。我发现Ubuntu11.10拥有我正在搜索的glibc的verison,linux,gcc,g++,glibc,Linux,Gcc,G++,Glibc,所以我在我的虚拟机中安装了它,然后我安装了g++编译器,带有: sudo apt-get install g++ 问题是g++包还将glib更新为Glibc2.19的最新版本 我还试图编译glibc2.13的源代码,但在编译过程中出现了不同的错误,因为我需要使用创建时使用的相同版本的编译器 我认为最快的方法是使用Glibc2.13,它已经安装在Ubuntu11.10上。因此,我需要找到一个解决方案,在不更新glibc的情况下安装g++。只需获取最近的4.9源代码(以及所有依赖项,可能使用apt

所以我在我的虚拟机中安装了它,然后我安装了g++编译器,带有:

sudo apt-get install g++
问题是g++包还将glib更新为Glibc2.19的最新版本

我还试图编译glibc2.13的源代码,但在编译过程中出现了不同的错误,因为我需要使用创建时使用的相同版本的编译器

我认为最快的方法是使用Glibc2.13,它已经安装在Ubuntu11.10上。因此,我需要找到一个解决方案,在不更新glibc的情况下安装g++。

只需获取最近的4.9源代码(以及所有依赖项,可能使用
aptitude build dep gcc
contrib/download\u先决条件
脚本,在gcc源代码树中)并从源代码编译它(使用安装的<代码> GLUBC-2.13…)。您需要配置它(可能通过一些类似于代码>程序后缀=-4.9 Gue/<代码>,可能还有一些<代码>前缀 >,并将其建立在源树的外部,然后安装它。(然后使用<代码> G++-4.9Guie作为C++编译器)。 运行
gcc-v
将向您展示系统gcc是如何配置的


顺便说一句,我不确定glibc的版本是否总是那么重要(这实际上取决于很多因素)。您是否尝试过编译您的项目(在您拥有的任何Linux系统上)并在使用glibc 2.13的机器(可能是虚拟机器)上运行它?它可能会工作(但我一点也不确定)!

您可以从Ubuntu工具链ppa repo获得特殊版本:

#cat/etc/apt/sources.list.d/ubuntu-toolchain-r-test-precise.list

deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu precise main
deb-src http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu precise main
Gcc 4.9 预构建步骤:

apt-get build-dep -y gcc-4.9-multilib
apt-get source -y gcc-4.9-multilib
dpkg-source -x gcc-4.9_4.9.2-0ubuntu1~12.04.dsc
cd gcc-4.9-4.9.2
自定义参数:

mkdir -p src && tar -xf gcc-*.tar.xz -C src
cd src && ./contrib/download_prerequisites && cd ..
mkdir -p /opt/dev-tools-4.9
../src/configure --prefix=//opt/dev-tools-4.9 \
-v --with-pkgversion='Ubuntu/Linaro 4.9.2-0ubuntu1~12.04' \
--program-suffix=-4.9 --enable-shared --enable-linker-build-id --with-system-zlib \
--libexecdir=//opt/dev-tools-4.9/lib --without-included-gettext \
--enable-threads=posix --with-gxx-include-dir=//opt/dev-tools-4.9/include/c++/4.9 \
--libdir=//opt/dev-tools-4.9/lib --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes \
--enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror \
--with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64 --with-tune=generic \
--enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu  --with-sysroot=/  --enable-nls

make -j $(grep -c ^processor /proc/cpuinfo ) && make install
此外,还应重新生成binutils:

比努蒂尔斯2.22
谢谢你Basile,但是一旦我编译了gcc,我需要复制和替换我的旧gcc?并且我还将准备好运行g++吗?如果我在使用glibc2.13的机器上运行使用新版本的glibc编译的项目,我会发现glibc2.13版本出现错误,建议我在glibc2.13中重新编译该项目。是的,您将获得bot如果您正确地配置了gcc,那么您将获得一个
gcc-4.9-mine
和一个
g++-4.9-mine
。不要忘记在其源代码树之外构建gcc!仔细阅读安装说明!Basile我已经尝试编译源代码,但是我得到了以下错误:
没有找到可用的依赖样式
,相对于依赖样式of g++。我没有找到任何关于它的信息,但它似乎是我当前使用的编译器的错误。有没有办法只下载g++包,而不下载整个gcc包?没有,g++是gcc的一部分(就像gcc一样)我得到以下错误:检查如何运行C++预处理器…/LIb/CPP配置:错误;我发现要运行它,我需要安装G++。所以在编译GCC PAKCHIVER的最后,您需要G++,但是安装G++,我也更新了GLUBC版本,所以这种方式没有给我任何解决方案。
apt-get build-dep -y binutils-dev
apt-get source -y  binutils-dev
dpkg-source -x binutils_2.22-6ubuntu1.3.dsc
  mkdir  objdir&& cd objdir

 ../binutils-2.22/configure --prefix=/opt/rdwr_tools/radware-dev-tools-4.9            \
--exec-prefix=/opt/rdwr_tools/radware-dev-tools-4.9       \
 --with-sysroot=/   --enable-multilib     \
 --with-lib-path=/opt/rdwr_tools/radware-dev-tools-4.9/lib \
 --disable-werror  --enable-shared \
 --enable-targets=x86_64-linux-gnu,i686-linux-gnu,x86_64-pc-mingw32,i686-pc-mingw32
make -j 8 && make install