Intereting Posts
Копировать удаленный btrfs инкрементный снимок на новый диск с UUID Сделать zsh завершение показать первое предположение на той же линии (например, рыбы) Почему sudo не запрашивает пароль снова после того, как «команда не найдена»? Получить список пакетов, которые предоставляют (APT) Не удается подключиться через ssh к серверу с глобальным IP-адресом Как отключить белый шум с помощью наушников в Dell XPS добавление звука из файла воспроизведения в поток микрофона Не удалось подключиться к моему серверу Ubuntu SSH даже после перенаправления портов на маршрутизаторе Почему я не могу переключить виртуальный терминал сейчас? Странный персонаж в моей подсказке Bash? общая файловая система с автономным доступом Не останавливайте загрузку при сбое установки fstab Для чтения значение Как получить IP-адрес клиента SSH с помощью сценария оболочки? псевдоним или функция bash не работает

Как установить последнюю стабильную версию GCC в Linux Mint?

Я хочу установить последнюю версию GCC (сборника компиляторов GNU) в Linux Mint 17.3. В настоящее время g++ --version возвращает 4.8.4, тогда как последняя стабильная версия – 5.3.

Ваш Linux Mint поставляется с предустановленным пакетом GCC. Поэтому сначала я рекомендую вам проверить, присутствует ли пакет в вашей системе, введя следующую команду в терминале.

 apt-cache search gcc 

Если у вас нет такого пакета, используйте следующую команду в терминале, во-первых, вы добавите следующий репозиторий:

 sudo add-apt-repository ppa:ubuntu-toolchain-r/test 

затем используйте следующую команду:

 sudo apt-get update sudo apt-get install g++-4.7 c++-4.7 

Всегда есть основная вещь, которую мы должны изучить; примите это как предварительное условие перед linux .. Учиться googling … попытаться сделать более жесткий поиск …

скачать последнюю версию gcc

 sudo wget http://www.netgull.com/gcc/release/gcc-5.3/gcc-5.3.tar.bz2 

использовать команду: tar -xjf чтобы распаковать файл

Введите каталог, который вы разархивировали сейчас, скажем в $ HOME / Downloads / gcc-5.3, затем введите команду:

 ./configure --disable-checking --enable-languages=c,c++,objc --disable-multilib --with-system-zlib prefix=/usr/bin/gcc-5.3 

Установка зависимостей: сборка GCC требует GMP4.2 +, MPFR 2.4.0+ и MPC 0.8.0+ и создания необходимых

 sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libc6-dev sudo apt-get install build-essential 

установить компилятор C ++

 sudo apt-get install g++ 

Следующий тип:

 make sudo make install 

Измените, если вы все еще получаете сообщение об ошибке «zlib.h not found!» вы можете сделать следующее, чтобы исправить это:

 apt-get install zlib1g-dev 

По правде говоря, я просто слишком ленив, чтобы отойти 17.3 – это работает для меня. Тем не менее, мне все еще нужен новый gcc. Чтобы скомпилировать его несколько раз для разных целей, у меня есть сценарий bash (см. Ниже), который я изменяю и запускаю (я пишу свою игрушку ОС, поэтому я должен использовать специально созданный gcc).

Измените каталоги в приведенном ниже скрипте, чтобы соответствовать каталогам, которые у вас есть. Я сохраняю скомпилированную версию в своем собственном каталоге, поэтому я могу легко переключаться между моей скомпилированной версией и версией системы. Я предлагаю вам сделать то же самое. Вам необходимо скачать binutils-2.23.2, а также интересующую вас версию gcc (я использую 7.1.0 ниже). Поместите их в каталог ~ / contrib вместе со сценарием ниже.

Вы также можете изменить строку «–enabled-languages ​​= c» на «–enabled-languages ​​= c, c ++, objc» – мне нужен только проект C. Другим изменением будет значение PLATFORM. Я использую «i686-эльф», но это не сработает для вас (я изменил его ниже на то, что будет работать на 32-битной платформе). Вы можете попробовать «x86_64-linux-gnu» для 64-битной платформы.

Для любопытных – причина, по которой я его строю, заключается в том, что процесс сборки gcc имел ошибку, которая препятствовала перестройке в исходном каталоге. Я не знаю, существует ли эта ошибка (я в последний раз встречался с ней в 4.8.0), но единственным обходным решением было явно создать отдельный каталог, если вы когда-либо хотели перестроить.

Надеюсь это поможет.

[EDIT: выполнить установку зависимостей, предложенных выше GAD3R]

 #!/bin/bash function die() { echo $1 exit 127 } export PREFIX=/home/lelanthran/opt/cross export TARGET=i686-linux-gnu export PATH="$PREFIX/bin:$PATH" pushd $PWD &> /dev/null mkdir -p build-binutils cd build-binutils ../binutils-2.23.2/configure \ --target=$TARGET \ --prefix="$PREFIX" \ --with-sysroot \ --disable-nls \ --disable-werror || die "binutils/config error" make || die "binutils/make error" make install || die "binutils/make install error" popd &> /dev/null pushd $PWD &> /dev/null mkdir -p build-gcc-7.1.0 cd build-gcc-7.1.0 ../gcc-7.1.0/configure \ --target=$TARGET \ --prefix="$PREFIX" \ --disable-nls \ --enable-languages=c \ --without-headers || die "gcc/config error" make all-gcc || die "gcc/make all-gcc error" make all-target-libgcc || die "gcc/make all-target-libgcc error" make install-gcc || die "gcc/make install-gcc error" make install-target-libgcc || die "gcc/make install-target-libgcc error"