2016-12-19 2 views
0

У меня есть два компилятора GCC, установленные на компьютере Linux (CentOS). Старая версия GCC (4.4.7) находится в папке по умолчанию (поставляется с CentOS), а более новая, которую я намереваюсь использовать, находится в /usr/local/gcc/4.9.3/. Мой код использует библиотеки MPI и LAPACK/LAPACKE/BLAS, а со старым GCC я использовал для компиляции источника (например, «main.cpp») следующим образом:Как сменить компилятор GCC по умолчанию для использования с MPI на Linux CentOS

mpiCC main.cpp -o main -L/home/USER1/lapack-3.6.1 -llapacke -llapack -lblas -lm -Wall

Это все еще вызывает старение GCC 4.4.7. Что мне следует изменить, поэтому приведенная выше MPI-компиляция (mpiCC) вызывает GCC 4.9.3 исполняемый файл из нового местоположения в /usr/local/gcc/4.9.3/el6/bin/?

От Mpich монтажника Руководство по версии 3.2 (страница 6):

«Шаг настроить MPICH попытается найти C, C++ и Fortran компиляторы для вас, но если вы либо хотите, чтобы переопределить значение по умолчанию или необходимость для указания компилятора, который configure не распознает, вы можете указать их в командной строке [...]. Например, чтобы выбрать компиляторы Intel вместо компиляторов GNU в системе с обоими, используйте «

./configure CC=icc CXX=icpc F77=ifort FC=ifort ...

Есть ли способ дистрибуции между различными версиями компиляторов GCC в ./configure?

+0

По какой причине у вас установлены две версии gcc? Вы можете просто обновить старый, который поставляется с ОС. –

+0

Причина в том, что CentOS имеет множество зависимостей от GCC 4.4.7. (эта версия точно), и нельзя просто заменить GCC на более новую, но она должна быть установлена ​​на стороне новой. Почему это так, я не знаю. С другой стороны, 4.4.7 не работает для меня, и у меня есть компиляция кода/работа с более высокими версиями. – Boki

ответ

1

Если вы действительно хотите две версии GCC, установленной в то же время и использовать оба из них здесь хорошая ссылка, которая объясняет, как это сделать:

http://gcc.gnu.org/faq.html#multiple

+1

Ну, да, но как его сделать, чтобы текущий MPI был совместим с новым GCC. И это невозможно. Основной C AI не изменяется (много), но для других языков GCC он делает. И на самом деле, просто обратите внимание, что OP * уже имеет * две версии GCC. –

3

Я думаю mpiCC использует первый gcc компилятор найден в переменной $PATH.

Вы должны быть в состоянии установить новую версию GCC, выполнив:

PATH="/usr/local/gcc/4.9.3/el6/bin:$PATH" mpiCC main.cpp -o main -L/home/USER1/lapack-3.6.1 -llapacke -llapack -lblas -lm –Wall 
+2

Да, но могут возникнуть несовместимости. По крайней мере, в C++ и Fortran части GCC и их привязки MPI (хотя MPI устарели). –

+0

'PATH ="/usr/local/gcc/4.9.3/el6/bin: $ PATH "' дает мне команду не найдена. – Boki

+0

@Boki странно, это задание, а не команда. – piarston

-1

Наконец нашел как. Вот рецепт:

1) Проверьте, если оболочка является Баш, если не установить его колотить: $ Эхо $ SHELL

/бен/Tcsh

Это было Tcsh и необходимо установить к bash.

2) Перейти на баш: $ Баш

Баш-4,1 $

3) Добавить новую версию GCC на передней части PATH:

Баш-4,1 $ экспорт PATH =/USR/местные/ССАГПЗ/4.9.3/el6/бен: $ PATH

4) Проверьте ПУТЬ: Баш-4.1 $ эхо $ PATH

/usr/local/gcc/4.9.3/el6/ bin: /usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin

5) Проверьте версию GCC (она берет первый GCC из PATH): bash-4.1 $ НКУ --version

ССАГПЗ (GCC) 4.9.3

Примечание: это только для текущей сессии.

Смежные вопросы