Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Обилие версий компиляторов  (Прочитано 1390 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн KotKit

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Обилие версий компиляторов
« : 14 Февраль 2008, 03:41:46 »
Диск ubuntu(kubuntu ...) содержит несколько версий компиляторов: cpp-3.4, 4.1...,gcc-3.4, ..4.2 и т.д.
Для чего все это облилие версий и как с ним управляться. В инстр. к некоторым программам пишут:
" не компилировать с такой-то версией". По ходу установки разл. програмулин у меня поставилось,по моему,
два разных gcc.

Оффлайн Kwah

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: Обилие версий компиляторов
« Ответ #1 : 14 Февраль 2008, 12:20:13 »
cpp - не компилятор.
Обилие версий - от развития компиляторов и сопутствующих утилит, как то включения поддержки новых стандартных вещей, исправления ошибок и прочего.

Требование компилировать конкретной версией (скорее серией, ака gcc-3.xx например) компилятора... Странное, причины этого требования нужно выяснять у разработчика конкретной программы. Может быть связано с использованием закрытых компонент, например, скомпилированных под конкретную серию, т.е. ограничения накладываются ABI, либо изменением поведения компилятора при работе с конкретными конструкциями языка (выбрасывание поддержки устаревших, ака deprecated вещей) и прочая, и прочая...

Оффлайн Viewizard

  • Активист
  • *
  • Сообщений: 481
    • Просмотр профиля
Re: Обилие версий компиляторов
« Ответ #2 : 15 Февраль 2008, 01:04:59 »
Диск ubuntu(kubuntu ...) содержит несколько версий компиляторов: cpp-3.4, 4.1...,gcc-3.4, ..4.2 и т.д.
Все правильно, обычно в системах все базируется на определенных библиотеках, если говорить простым языком, на библиотеках-фундаментах. Если, к примеру, целевая система старая (или предполагается что программы должна запускаться и на старых системах), то тут без gcc-3.4 не обойтись. Иначе большие косяки будут и грабли с вилами. :)
Собственно, вы можете это видеть на примере убунты. По мере развития, обновляется компилятор и набор библиотек... программы компилируются новым компилятором для каждой новой версии (в основном). В Ubuntu 5.10 был gcc-3.4, сейчас в 7.10 уже gcc 4.1... отсюда и такое кол-во репок, и не совместимость новых репок со старыми версиями убунты (в основном конечно). Я думаю, идея ясна.

Для чего все это облилие версий и как с ним управляться. В инстр. к некоторым программам пишут:
" не компилировать с такой-то версией". По ходу установки разл. програмулин у меня поставилось,по моему,
два разных gcc.
Как тут уже правильно написали, компилятор тоже развивается. Возможно, код программы использует функционал доступный только с определенной версии компилятора, и с более ранней версией просто не скомпилируется (или будет какой-то внутренний косяк в работе программы).
Обходя разложенные грабли, ты теряешь драгоценный опыт!

Оффлайн KotKit

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Обилие версий компиляторов
« Ответ #3 : 15 Февраль 2008, 02:11:56 »
Спасибо, просветили, но я тут криво выразился - мне не понятно: вот стоит неск. версий и как мне
задействовать одну изних, ту что сейчас нужна.

Оффлайн Kwah

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: Обилие версий компиляторов
« Ответ #4 : 15 Февраль 2008, 02:19:49 »
Самый простой способ - через переменные окружения.

Пишешь что-то типа
CC=gcc-3.4; make

 

Страница сгенерирована за 0.062 секунд. Запросов: 24.