安装g ++没有更新glibc

时间:2014-07-18 09:38:54

标签: linux gcc g++ glibc

我需要用glibc 2.13版本编译一个c ++项目。我发现Ubuntu 11.10具有我正在搜索的glibc的版本。

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

sudo apt-get install g++

问题是g ++包的更新也会滑到最新版本的glibc 2.19。

我还尝试编译glibc2.13的源代码,但我在编译时遇到了不同的错误,因为我确实需要使用创建时使用的相同版本的编译器。

我认为最快的方法是使用已安装在Ubuntu 11.10上的glibc 2.13。所以我需要找到一个安装g ++而不需要更新glibc的解决方案。

2 个答案:

答案 0 :(得分:0)

简单地说,获取最近的GCC 4.9源tarball(以及所有依赖项,可能使用aptitude build-dep gcc或GCC源代码树中的contrib/download_prerequisites脚本)并编译它install来自其源代码(使用已安装的glibc-2.13 ...)。您需要对其进行配置(可能会传递类似--program-suffix=-4.9-mine和可能某些--prefix的内容)并在其源代码树的之外构建然后安装它。 (然后使用g++-4.9-mine作为C ++编译器)。请仔细阅读 installation instructions

运行gcc -v将向您展示系统GCC的配置方式。

BTW我不确定glibc的版本总是那么重要(它确实取决于很多因素)。您是否尝试编译您的项目(在您拥有的任何Linux系统上)并使用glibc 2.13在计算机(可能是虚拟计算机)上运行它?它可能会起作用(但我根本不确定)!

答案 1 :(得分:0)

您可以从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:

binutils 2.22

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