Форум программистов, компьютерный форум, киберфорум
Debian, Kali Linux, Raspbian, Astra Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30

Как установить gcc-4.6.3 параллельно с gcc-4.4?

05.05.2013, 15:20. Показов 4148. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На debian-6.0.7 нужно установить gcc-4.6.3 (или очень близкий по версии). Через apt-get, насколько я понимаю, установить не получится, т.к. там самая поздняя версия - gcc-4.4. Можно как-нибудь по простому установить бинарник (а не компилировать из исходников)? В идеале чтобы это было вторым компилятором (т.е. чтобы не трогать тот основной компилятор, который в комплекте с debian'ом шёл). Со вторым компилятором обычно бывают засады с библиотеками поддержки Си++, но мне Си++ не нужен, достаточно только Си

Добавлено через 23 часа 12 минут

---------------------------------------------

В итоге собрал из исходников. Кому-то последовательность действий может оказаться полезной, а потому опишу. Но на всякий случай предупреждаю, пока я ещё не проверял, насколько сие работоспособно

Прежде, чем заниматься сборкой gcc, требуется установить дополнительные пакеты. В случае debian'а моей версии потребовались только дополнительные devel-пакеты (по сути дела, инклюды) к некоторым библиотекам. Через synaptic я выбрал к установке пакеты libgmp3-dev, libmpfr-dev, libmpc-dev, остальное настроилось автоматически по зависимостям. В общем случае может понадобиться установить пакеты gcc и binutils, т.к. на пользовательских версиях дистрибутивов они могут и не устанавливаться по умолчанию.

Исходники gcc положил в каталог /home/evg/tmp/gcc-4.6.3. Далее:

Code
$ mkdir /home/evg/tmp/gcc-4.6.3.build
$ cd /home/evg/tmp/gcc-4.6.3.build
$ /home/evg/tmp/gcc-4.6.3/configure --prefix=/opt/gcc-4.6.3 --target=i686-linux-gnu --host=i686-linux-gnu --build=i686-linux-gnu --disable-bootstrap --enable-languages=c
$ make
$ sudo make install
$ sudo ln -s /opt/gcc-4.6.3/bin/gcc /usr/bin/gcc-4.6.3                                                                                             
$ sudo ln -s /opt/gcc-4.6.3/bin/cpp /usr/bin/cpp-4.6.3
Вкратце опишу, какой смысл в параметрах configure
  • --prefix=/opt/gcc-4.6.3: установить новый компилятор в отдельный каталог /opt/gcc-4.6.3. В первую очередь это делается ради того, чтобы в случае чего, можно было по быстрому удалить результат своей работы (если выяснится, что собрано неправильно). Чтобы не нужно было искать по всей файловой системе, куда какие файлы были установлены. Можно сколько угодно говорить о том, что можно запустить make uninstall или что-то типа того, но я не собираюсь хранить на память каталог сборки с Makefile'ами. Во вторую очередь - чтобы не конфликтовать с уже установленным gcc, хотя опция --program-suffix=-4.6.3 проблему конфликта бы решила
  • --target=i686-linux-gnu: указать, что мне требуется 32-битная версия компилятора. По умолчанию configure определяет мою систему как 64-битную, хотя она 32-битная. Я не стал разбираться, почему оно так происходит, потому что всё равно бы это не помогло. Из-за опции --target теперь у нас формально получается сборка cross-компилятора, т.к. host и target не совпадают. Чтобы избежать геморроя с настройкой cross-сборки, я добавил опции --host=i686-linux-gnu и --build=i686-linux-gnu, чтобы configure по-прежнему настраивался на native-сборку
  • --disable-bootstrap: настроиться на простую сборку. По умолчанию сборка native-компилятора выполняется в три этапа. На первом этапе (stage1) делается сборка тем компилятором, что установлен в системе. На втором этапе свежий компилятор stage1 пересобирает сам себя из исходникв, получая stage2. На третьем этапе stage2 пересобирает сам себя, получается stage3, затем делается контрольная проверка, что stage2 побайтно совпадает со stage3 (в противном случае компилятор работает с ошибкой). Мне не хотелось возиться с тремя этапами, потому что в случае чего, уж слишком станет сложно разбираться, откуда возникает та или иная проблема. Мне и так уже хватило того, что после подачи опции --target я долго и нудно разбирался в том, почему же сборка обламывается
  • --enable-languages=c: собирать только компилятор с языка Си (т.е. gcc, без всяких g++, gfortran и т.п.). У каждой версии компилятора есть своя версия билиотеки поддержки Си++ (libstdc++). У некоторых версий компилятора могут быть одинаковые версии библиотеки. Но если они разные, то теоретически можно нахлебаться всякого геморроя с тем, что системные библиотеки Си++ собраны в окружении одной версии libstdc++, а свежий компилятор использует другую версию. Будут там проблемы, или не будут - пусть с этим разбираются профессионалы. Мне Си++ не требовался, а потому я его не собирал, от греха подальше

 Комментарий модератора 
правила
5.2. Запрещено использовать нецензурные выражения в любом виде, оскорблять других участников форума, умышленно использовать выражения, противоречащие правилам русского языка.
4
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.05.2013, 15:20
Ответы с готовыми решениями:

Не могу установить gcc
Hello. I can't install gcc. When I run# apt-get install gccI get this error Чтение списков пакетов... Готово Построение дерева...

Как обновить gcc?
У меня Linux Mint Debian Edition 17. Через менеджер обновлений вроде всё обновил - галочка стоит и пустой список. Но текущая версия gcc...

Как узнать есть ли компилятор gcc?
Приветствую. Хочу научиться программировать. Начал читать книгу "Программирование в Линукс с нуля". Столкнулся с требованием, что...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.05.2013, 15:20
Помогаю со студенческими работами здесь

Как узнать список target систем которые поддерживает компилятор gcc в Linux?
Как узнать список target систем которые поддерживает компилятор gcc в Linux? Что такое target системы? Как компилировать проект с...

gcc.4.6.2
собираю gcc.4.6.2. это уже на этапе make. checking for x86_64-unknown-linux-gnu-gcc......

Флаги GCC
Здравствуйте. При сборке возникли пару вопросов: Сохраняются ли переменные-флаги при конфигурации исходников? (./configure) Просто видел,...

флаги GCC
Привет)) проблема с флагом ftree-vectorize, он ничего не вектаризирует, но улучшает время исполнения программы. единственное...

Как установить три системы параллельно?
Здравствуйте! Я хочу, опробовать Linux на своём ноутбуке, и в частности, начать, хотя бы, пытаться программировать под Linux, но есть одна...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru