2016-06-12 3 views
1

Я хотел бы построить функции MEX из исходного кода C/C++, чтобы включить доступ к скрипту MATLAB, но моя текущая версия Fedora имеет более новый и несовместимый GCC. Я попытался удалить установленный GCC и установить версию GCC 4.7.x, используя sudo dnf gcc-4.7.x (с x = [1, 2, 3, 4]), но кажется, что ни одна из этих версий не размещена на репозитории пакетов Fedora.Компилятор Downgrading C/C++ на Fedora 23 в MATLAB R2016a-совместимый компилятор

Есть ли другой способ установить более старые версии GCC в новых версиях Fedora?

+0

ли вы на самом деле, имеющие проблемы с компиляцией Mex (значение действует до выхода из терминала.) файлы, или он успешно компилирует их и просто показывает предупреждение. Если это будет позже, чем вы, вероятно, ОК, чтобы игнорировать его. – Suever

+0

@Suever проблема заключается в компиляции файлов mex. Новые версии GCC несовместимы с MATLAB. –

+0

Справа. Вы не ответили на мой вопрос. Предупреждал ли MATLAB предупреждение при попытке скомпилировать их или были ли реальные ошибки? MATLAB с удовольствием скомпилирует с использованием не поддерживаемой версии GCC, это просто даст вам предупреждение при этом. – Suever

ответ

2

Вам нужно будет скачать gcc-источник и скомпилировать gcc самостоятельно. Репозитории Fedora зависят от выпуска. gccs из предыдущих выпусков Fedora не включены в последующие выпуски Fedora.

Несмотря на то, что можно скачать более ранние версии gcc вручную, из соответствующей версии Fedora, маловероятно, что rpm согласится установить его из-за конфликтов версий. Возможно, кто-то поможет с помощью --force принудительно установить несовместимую версию gcc. Такой совет, увы, вполне вероятно, приведет к невыгружаемому кирпичу.

Итак, единственный практический ответ - загрузить и построить gcc самостоятельно; с настраиваемой конфигурацией, которая устанавливает gcc в нестандартное местоположение, чтобы избежать перезаписи установленного системой libstdc++. Не тривиальная задача, сделав это сама, несколько лет назад.

TL; DR: если вы должны задать такой вопрос, это невозможно.

+0

Я вижу. Благодарю за ваш ответ.Я относительно новичок в Linux и, если не слишком много, чтобы спросить, знаете ли вы, есть ли какие-либо руководства о том, как это сделать? –

+1

Боюсь, что никаких «проводников» нет. Короткий и грубый ответ заключается в том, что маловероятно, что «новичок» сможет выполнить задачу создания пользовательской конфигурации gcc. Как я уже сказал, это не тривиальная задача. Для двух старших разработчиков, обладающих 40-летним опытом разработки C++ и Linux, задача создания воспроизводимой пользовательской сборки gcc потребовала нескольких недель. –

2

1) Вы можете иметь столько версий gcc/g ++, сколько хотите, установленных одновременно. 2) Не рекомендуется удалять системный компилятор.

Gcc-4,7: Простой, установите [необходимые пакеты] от "Redhat devtoolset-1,1" http://linux.web.cern.ch/linux/devtoolset/ → → # wget -O /etc/yum.repos.d/slc6-devtoolset.repo http://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo

The-2 devtoolset были созданы devtoolset-1,1 и для RHEL6, так что мы должны установить некоторые старые файлы для devtoolset- (1,1): compat-gmp-4.3.1-11.fc23.x86_64.rpm и compat-mpfr-2.4.1-7.fc23.x86_64.rpm .... Ссылки: Compat-ГМФ https://drive.google.com/file/d/0B7S255p3kFXNbTBSS21jdWlvRXM/view?usp=sharing - Compat-MPFR https://drive.google.com/file/d/0B7S255p3kFXNOG8wYU1sY0lkQWc/view?usp=sharing

Затем вы можете установить 4 пакета из devtoolset-1.1 (GCC-C++ и зависимые, gcc и т. д.) с № dnf install --nogpgcheck devtoolset-1.1-gcc-c++

Включение НКУ-4,7: $ scl enable devtoolset-1.1 bash ... и gcc -v будет сказать «GCC версии 4.7.2»


+0

спасибо, я попробую это завтра, когда я получу доступ к моей машине Linux. –