6

Я на Fedora 23, которая устанавливает GCC 5.3.1 по умолчанию.

Для проекта кросс-компиляции с библиотеками, которые были скомпилированы с GCC 4.9, я бы хотел установить GCC 4.9 параллельно.

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

Прошло 3 года. Есть ли способ предоставить старую версию GCC в отдельном каталоге (с помощью менеджера пакетов), которую можно использовать параллельно с установленным GCC 5.3?

1 ответ1

8

Это НЕ ответ на мой вопрос, так как я показываю, как собрать и использовать GCC 4.9 таким образом, который работает на Fedora 23 (и, вероятно, на любой другой платформе). Это всего лишь компиляция шагов, которые мне пришлось сделать, чтобы скомпилировать другую версию GCC, отличную от поставляемой.

Показанные шаги взяты отсюда.

  • ищите, загружайте и извлекайте соответствующий архив с http://www.gnu.org/software/gcc/mirrors.html:

    wget ftp://ftp.fu-berlin.de/unix/languages/gcc/releases/gcc-4.9.3/gcc-4.9.3.tar.bz2
    mkdir src; cd src
    tar xf ../gcc-4.9.3.tar.bz2
    
  • Скачать предварительные условия:

    cd gcc-4.9.3
    ./contrib/download_prerequisites
    
  • Сконфигурируйте сборку (добавьте --disable-multilib когда вам не нужна 32-битная сборка, установите prefix , добавьте / удалите языки):

    mkdir ../objdir; cd ../objdir
    ../gcc-4.9.3/configure \
        --prefix=`pwd`/../../gcc-4.9.3-x86_64 \
        --enable-languages=c,c++ \
        --disable-multilib
    
  • Собственно соберите и установите GCC:

    make -j4
    make install
    

Теперь вы можете использовать этот новый компилятор, просто установив CC (возможно, также CXX) перед запуском make или cmake:

export CC=</installation/path/to/gcc>/bin/gcc
make .

или же

CC=</installation/path/to/gcc>/bin/gcc cmake <path>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .