Я хочу установить последнюю версию GCC (коллекция компиляторов GNU) в Linux Mint 17.3. В настоящее время g++ --version
возвращает 4.8.4, тогда как последний стабильный выпуск 5.3.
Я хочу установить последнюю версию 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 .. Учитесь гуглить ... попробуйте сделать более сложный поиск ...
g++-4.7
более низкую версию, чем у g++-4.8
меня уже есть? Я хочу обновить, а не понизить.
скачать последнюю версию gcc
wget http://www.netgull.com/gcc/releases/gcc-5.3.0/gcc-5.3.0.tar.bz2
используйте команду: tar -xjf
чтобы разархивировать файл
Введите каталог, который вы только что распаковали, скажем $HOME/Downloads/gcc-5.3.0
, введите команду:
./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
--disable-multilib
?
gcc/lto-compress.c:28:18: fatal error: zlib.h: No such file or directory
Я не совсем уверен, что должно быть последним, потому что всегда есть некоторые последние новости. Но вы можете установить любой из них таким образом.
Возьмите gcc-8 в качестве примера:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-8 g++-8
gcc-8 --version
если вы хотите выбрать gcc-8 / g ++ - 8 с более высоким приоритетом (в данном случае 20), вам также необходимо
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 20 --slave /usr/bin/g++ g++ /usr/bin/g++-8
По правде говоря, я просто слишком ленив, чтобы съехать с 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-elf», но это не сработает для вас (я изменил его ниже на что-то, что будет работать для 32-битной платформы). Вы можете попробовать "x86_64-linux-gnu" для 64-битной платформы.
Для любопытных - причина, по которой я собираю его так, заключается в том, что в процессе сборки gcc была ошибка, препятствовавшая перестройке в исходном каталоге. Я не знаю, существует ли эта ошибка до сих пор (в последний раз я сталкивался с ней в 4.8.0), но единственным обходным решением было явное создание отдельной директории, если вы когда-либо хотели восстановить.
[РЕДАКТИРОВАТЬ: Выполнить установку зависимостей, предложенных 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"