Консультация № 55840
18.09.2006, 13:51
0.00 руб.
0 3 3
Здравствуйте, прочитал в одном из вопросов что у пользователя для сборки потребовался gcc v3 4-ая версия не подошла. В связи с этим вопросы
1) можно ли системе держать 2 gcc
2) как на 3 версию поставить 4-ую

Обсуждение

Неизвестный
18.09.2006, 15:19
общий
это ответ
Здравствуйте, Zloba!
1)Можно, но в разных папках или с разными префиксами/суффиксами (gcc-2, gcc3 и.т.д.)
2)можно поискать пакет, который содержит нужную Вам версию и не конфликтует по названиям с установленой. Если найти ничего не удастся, то можно собирать из исходников. В 4-ой версии процедура сборки из исходников подчищена от разных глюков (в 3й собрать ada-компилятор не читая специально инструкцию практически невозможно). Просто в configure задайте параметр --prefix или --program-prefix (--program-suffix) и соберите таким образом, чтобы он не конфликтовал с сушествующим gcc . Потом, если хотите использовать свою версию пишите CC=/path/to/my/gcc CXX=/path/to/my/c++ и т.д.
Неизвестный
18.09.2006, 15:24
общий
это ответ
Здравствуйте, Zloba!

Можно хоть десять, был бы смысл.
При сборке нового gcc вы имеете возможность установить --program-prefix, --program-suffix
например
./configure --program-prefix=avr --program-suffic=4.1
и в итоге вы получите исполняемые файлы gcc в виде avr-gcc-4.1, вместо привычного gcc.

Далее можно использовать значение переменной CC для установки используемого компилятора в ./configure для конкретной
софтины, ну и сделать симлинки типа такого:
lrwxrwxrwx 1 root root 7 2006-09-09 12:59 /usr/bin/gcc -> gcc-4.1
для компилятора которым вы будете пользоваться чаще всего.

Аналогично для g++ и остальных бинарников ...

Например в debian это все делается автоматически... т.е. можно просто ставить несколько версий gcc из репозитория.

давно
Академик
20764
1861
18.09.2006, 16:08
общий
это ответ
Здравствуйте, Zloba!

Можно всеУ меня здесь (это работа) два родных и два кросс-компилятора для других платформ.

Насколько я знаю, единственный пока дистрибутив, где штатный компилятор gcc версии 4 - это fedora core 5. Если это - ваш случай, то в наборе пакетов есть compat-gcc-32. Работает, если не использовать стандартные библиотеки, изначально написанные на C++ и собраные под новый компилятор.

При компиляции старых програм новым компилятором бывают проблемы из-за того, что компилятор стал построже. Но их обычно немного и проще поправить исходники (для меня, по крайней мере), чем откатываться на старый компилятор (и это я тоже пробовал)

Да, прямой ответ на второй вопрос - нет.
Форма ответа