Установить резервную версию gcc g++ вместе с последней версией?

Я пытаюсь построить SFML-проект с помощью g++ 5. К сожалению, в g ++ 5 есть ошибка, которая препятствует успешному прохождению этапа компоновки с использованием некоторых библиотек SFML.

Эта ссылка содержит более подробную информацию об ошибке.

http://en.sfml-dev.org/forums/index.php?topic=20394.0

Я не мог понять, как использовать обходной путь. Прикрепление -lgcc_s -lgcc чтобы моя сборка командной строки не работала.

Я хотел бы знать, как установить резервную версию gcc/g++. Давайте специально возьмем версию 4.9 в качестве примера, так как я уверен, что эта версия будет работать.

Можно ли это сделать таким образом, чтобы я все еще мог сохранить gcc/g++ 5 в качестве моего "стандартного" или "основного" компилятора c / C++? Я предполагаю, что я тогда звоню g++-4.9 а не просто g++ скомпилировать программу с использованием версии 4.9?

Можно ли это сделать, и если да, то как? Есть ли потенциальные проблемы (ломая мою систему) с этим?

1 ответ

Вы всегда можете скачать и собрать нужную версию GCC, а затем добавить скрипт в / usr / bin / для его запуска. Есть другие способы сделать это, которые включают редактирование PATH, но я не уверен на 100% в деталях, так что... сценарий, я думаю. (примечание: gcc-xyz - это версия, которую вы хотите использовать, т.е. IE: gcc-4.9.0. Не вводите gcc-xyz, она не будет работать)

Эта статья в вики OSDev посвящена установке версии GCC (в ней говорится, что она самая новая, но вы можете сделать любую версию, какую захотите, когда загружаете ее из зеркала ftp).

Начните с загрузки версии GCC, которую вы хотите отсюда.

Распакуйте его в $HOME/src. У вас должна быть папка gcc или что-то подобное в $HOME/src.

Перейдите в gcc-xyz/ и выполните contrib/download_prerequisitesЭто должно получить правильные версии зависимостей, которые вам нужны.

Теперь решите, хотите ли вы это только для себя или для всего мира. Если вы просто используете это, вы можете установить его в $HOME/opt/ или глобально /usr/local/gcc-xyz (я не думаю, что это действительно имеет значение, так как мы будем помещать скрипт в / usr / bin, но не цитируй меня)

Теперь выполните export PREFIX="$HOME/opt/gcc-x.y.z (или /usr/local/gcc-xyz, если вы используете это в качестве префикса)

Теперь, согласно вики OSDev, вы хотите сделать

cd $HOME/src

Если вы хотите собрать эти пакеты как часть gcc: mv gmp-x.y.z gcc-x.y.z/gmp mv mpfr-x.y.z gcc-x.y.z/mpfr mv mpc-x.y.z gcc-x.y.z/mpc

Затем:

mkdir build-gcc cd build-gcc ../gcc-x.y.z/configure --prefix="$PREFIX" --disable-nls --enable-languages=c,c++ make make install

Теперь вы можете найти его в $PREFIX/gcc-xyz (должно быть $HOME/opt/cross или /usr/local/gcc-xyz)

Теперь создайте файл в / usr / bin с именем gcc-4.9 (и g++-4.9). В сценарии добавьте

#!/bin/sh

а также

$HOME/opt/gcc-x.y.z/gcc "$@"

Это передаст все аргументы команды в эту версию gcc. (psst, сделайте то же самое для скрипта g ++)

Проверьте это, чтобы увидеть, работает ли оно. Также, если у кого-то есть предложения в комментариях, пожалуйста, скажите мне, потому что я, вероятно, где-то допустил ошибку.

Другие вопросы по тегам