Установить g++ без обновления glibc

Мне нужно скомпилировать проект C++ с версией glibc 2.13. Я узнал, что в Ubuntu 11.10 есть версия glibc, которую я ищу.

Поэтому я установил его на своей виртуальной машине, а затем установил компилятор g ++ с:

sudo apt-get install g++

Проблема заключается в том, что обновления пакета g ++ также позволяют использовать последнюю версию glibc 2.19.

Я также попытался скомпилировать исходный код glibc 2.13, но при компиляции я получаю разные ошибки, потому что наверняка мне нужно использовать ту же версию компилятора, которая использовалась при его создании.

Я думаю, что самый быстрый способ - это использовать glibc 2.13, уже установленный в Ubuntu 11.10. Поэтому мне нужно найти решение для установки g ++ без обновления glibc.

2 ответа

Просто загрузите недавний исходный архив GCC 4.9 (и все зависимости, возможно, используя aptitude build-dep gcc или contrib/download_prerequisites сценария внутри дерева исходных текстов GCC) и скомпилируйте его и установите из исходного кода (используя установленный glibc-2.13...). Вы должны настроить его (возможно, передавая что-то вроде --program-suffix=-4.9-mine и, возможно, некоторые --prefix) и создайте его за пределами исходного дерева, а затем установите его. (затем используйте g++-4.9-mine как ваш компилятор C++). Прочтите и внимательно следуйте инструкциям по установке

Бег gcc -v покажет вам, как была настроена ваша система GCC.

Кстати, я не уверен, что версия glibc всегда так важна (это зависит от многих факторов). Вы пытались скомпилировать свой проект (на любой имеющейся у вас системе Linux) и запустить его на машине (возможно, виртуальной) с помощью glibc 2.13? Это может сработать (но я совсем не уверен)!

Вы можете получить специальную версию из Ubuntu toolchain 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
Другие вопросы по тегам