В очередной раз о GCC

Аватар пользователя debug

Я уже с подобным вопросом обращался сюда - теперь другая проблема.
Попробовал самостоятельно установить в 7.3 другой GCC с окружением.
Родная версия 2.96 как вы понимаете не устраивает - не поддерживает с99.
Можно конечно использовать g++. Но я сторонник того - что если настраивать для работы систему -
то до конца - максимально. Что-бы всё работало. Попробовал gcc 3.2.2 и замучался с зависимотями - скачал с ftp.asplinux по его требованию 15 м и понял - что возможно это ещё не конец мучений - у тех пакетов ещё свои зависимости Улыбка в добавок не нашёл там libc.so.6. В общем просьба - по возможности полный список всех библ, чтобы сразу поставить более новый gcc (>3) c окружением и где его проще взять. Ещё хотелось бы GL - а то под 7.3 нет для разработки её - линковщик ругается страшными словами Мозги набекрень). Заранее благодарю.

Аватар пользователя Grek

Re: в очередной раз о GCC

Цитата:
debug пишет:
Я уже с подобным вопросом обращался сюда - теперь другая проблема.
Попробовал самостоятельно установить в 7.3 другой GCC с окружением.
Родная версия 2.96 как вы понимаете не устраивает - не поддерживает с99.
Можно конечно использовать g++. Но я сторонник того - что если настраивать для работы систему -
то до конца - максимально. Что-бы всё работало. Попробовал gcc 3.2.2 и замучался с зависимотями - скачал с ftp.asplinux по его требованию 15 м и понял - что возможно это ещё не конец мучений - у тех пакетов ещё свои зависимости Улыбка в добавок не нашёл там libc.so.6. В общем просьба - по возможности полный список всех библ, чтобы сразу поставить более новый gcc (>3) c окружением и где его проще взять. Ещё хотелось бы GL - а то под 7.3 нет для разработки её - линковщик ругается страшными словами Мозги набекрень). Заранее благодарю.

gcc из исходников собирал? Почему не собрался? В десятке ставил последний gcc. Единственное, нужно префикс указывать...в моем случае /usr/local/lib

Вот сейчас еще вспомнил, если gcc у тебя поставился, но запрос на версию говорит что старая, попробуй сделать ldconfig (возможно /sbin/ldconfig точно не помню просто)

Аватар пользователя debug

Re: в очередной раз о GCC

Ставил обычным способом - rpm -i gcc...
В ответ на это он выдал мне зависимости - которые не удовлетворяют установке - старые версии библиотек.
Я отследил зависимости - скачал указанное rpm-мом с ftp, попробовал начать с установки тех библиотек, те в свою очередь тоже выдали каждая по списку зависимостей.
Вот я и хочу знать - как мне правильно установить gcc и список зависимостей полный, и где лучше их взять.
Напомню, что у меня 7.3 и то - что под ним устанавлявается стандартно - gcc 2.96

Аватар пользователя Archont

Re: в очередной раз о GCC

Чё-то я не понял, где именно на ftp://ftp.asplinux.ru/ GCC для 7.3 старше, чем 3.0.4?
А если ставить его от другого дистрибутива, то он естественно потянет за собой столько, что замаешься зависимости удовлетворять, а если удовлетворишь, то получишь вовсе не 7.3!
Т.к. там glibc скорее всего окажется в зависимостях.

Если хочешь, можешь скачать мою сборку для 7.3 (работает уже около года, правда в rpm я его сравнительно недавно сумел закатать):
ftp://ftp.msiu.ru/pub/asplinux-7.3/updates/archont/RPMS/other/

Список файлов:
cpp32-3.2.2-5asp.i386.rpm
gcc32-3.2.2-5asp.i386.rpm
gcc32-c++-3.2.2-5asp.i386.rpm
gcc32-g77-3.2.2-5asp.i386.rpm
gcc32-java-3.2.2-5asp.i386.rpm
gcc32-objc-3.2.2-5asp.i386.rpm
libf2c-3.2.2-5asp.i386.rpm
libgcc32-3.2.2-5asp.i386.rpm
libgcj32-3.2.2-5asp.i386.rpm
libgcj32-devel-3.2.2-5asp.i386.rpm
libobjc32-3.2.2-5asp.i386.rpm
libstdc++32-3.2.2-5asp.i386.rpm
libstdc++32-devel-3.2.2-5asp.i386.rpm

Всё, что требуется в зависимостях, есть там же (binutils, например).
Кроме того, есть src.rpm ftp://ftp.msiu.ru/pub/asplinux-7.3/updates/archont/SRPMS/gcc32-3.2.2-5as...

gcc в моей сборке ставится 3-им (наряду с двумя стандартными для 7.3) в /usr/local.
Нет поддержки ADA. Ниасилил я его, т.к. для сборки его поддержки требуется установленный компилятор ADA, а в 7.3 его отродясь не было. Через эту рекурсию прорваться не получилось.

Аватар пользователя debug

Re: в очередной раз о GCC

Пробовал зайти на указанный ftp - пишет "отказано в доступе, возможно не хватает прав" и т. п. Грустный
Заходил anonymous-мом, с пароле почтового адреса

Аватар пользователя Archont

Re: в очередной раз о GCC

Цитата:
debug пишет:
Пробовал зайти на указанный ftp - пишет "отказано в доступе, возможно не хватает прав" и т. п. Грустный
Заходил anonymous-мом, с пароле почтового адреса

туда вполне можно зайти web-браузером, например mozilla.

Аватар пользователя debug

Re: в очередной раз о GCC

туда вполне можно зайти web-браузером, например mozilla.

Из списка закачал все файлы - в которых не содержится "c++".
Пробовал и мозиллой и конкуэррором и wincommanderom - ни один не стал копировать такие файлы Грустный

Аватар пользователя Archont

Re: в очередной раз о GCC

У тебя просто какие-то проблемы с ftp.
Все с этого ftp всегда прекрасно копировалось и сейчас копируется.

Аватар пользователя debug

Re: в очередной раз о GCC

Да - разобрался - были проблемы с прокси. Проблема известная давно и никак не решённая до сих пор.
Всё скачалось, спасибо.

Аватар пользователя debug

Re: в очередной раз о GCC

gcc установился в /usr/local/bin - как и было задумано Улыбка
Но в системе естевственно пока по умолчанию вызывается старый - 2.96
И конечно возникает вопрос - как это исправить.
Дайте пожалуста ссылочку, где почитать или пример - как правильно сделать gcc новой версии используемым по умолчанию.
Я конечно понимаю - это можно сделать "прямо" - перекопировать все библы новых версий и новый gcc в директории где сейчас старая версия, либо сделать ссылки для них. Но думаю - есть более простой и правильный способ - какие либо переменные окружения либо что-то подобное. Не знаю просто где посмотреть.

Аватар пользователя Archont

Re: в очередной раз о GCC

Перед компиляцией, точнее перед конфигурацией, задать
export CC=/usr/local/bin/gcc
Можно добавить
export CPP=/usr/local/bin/cpp

Можно в строке конфигурации указать
./configure CC=/usr/local/bin/gcc [CPP=/usr/local/bin/cpp] [остальные опции]

Это будет действовать на время текущего сеанса (или только для конфигурируемого и компилируемого проекта во втором случае).
Если есть желание сделать именно его основным, то нужно добавить эти же строки в .bash_profile юзера.
Да, и не забыть про переменную $PATH !
echo $PATH
Проверить, есть ли там /usr/local/sbin:/usr/local/bin

Аватар пользователя debug

Re: в очередной раз о GCC

Цитата:
Archont пишет:
Перед компиляцией, точнее перед конфигурацией, задать
export CC=/usr/local/bin/gcc
Можно добавить
export CPP=/usr/local/bin/cpp

Установил эти переменные окружения, проверил - появились такие.

Можно в строке конфигурации указать
./configure CC=/usr/local/bin/gcc [CPP=/usr/local/bin/cpp] [остальные опции]

Попробовал так, не получилось - нет говорит такой утилиты configure, посмотрел - и правда не нашёл.
Я rpm-ки устанавливал "вручную" - в mc окрывал и запускал install и так все по очереди, не пользовался KPackage. В общем конфигурировать не получилось

Это будет действовать на время текущего сеанса (или только для конфигурируемого и компилируемого проекта во втором случае).
Если есть желание сделать именно его основным, то нужно добавить эти же строки в .bash_profile юзера.
Да, и не забыть про переменную $PATH !
echo $PATH
Проверить, есть ли там /usr/local/sbin:/usr/local/bin

Добавил эти строки в bash_profile и в переменную PATH добавил путь, набираю gcc --version - ответ 2.96
Грустный Что мне дальше попробовать? Подскажите пожалуйста

Аватар пользователя Archont

Re: в очередной раз о GCC

Напиши что и из чего (и зачем) тебе нужно компилировать?

Аватар пользователя Archont

Re: в очередной раз о GCC

Скучно...

Цитата:
debug пишет:

Цитата:
Archont пишет:
Можно в строке конфигурации указать
./configure CC=/usr/local/bin/gcc [CPP=/usr/local/bin/cpp] [остальные опции]

Попробовал так, не получилось - нет говорит такой утилиты configure, посмотрел - и правда не нашёл.
Я rpm-ки устанавливал "вручную" - в mc окрывал и запускал install и так все по очереди, не пользовался KPackage. В общем конфигурировать не получилось

Цитата:
Да, и не забыть про переменную $PATH !
echo $PATH
Проверить, есть ли там /usr/local/sbin:/usr/local/bin

Добавил эти строки в bash_profile и в переменную PATH добавил путь, набираю gcc --version - ответ 2.96
Грустный Что мне дальше попробовать? Подскажите пожалуйста

1) Скрипт configure - практически непременный атрибут любого сколько-нибудь большого проекта. Он находится в исходниках почти любой программы, и предназначен для конфигурирования опций компилятора и переменных окружения среды при компиляции программ (собственно этот скрипт используется чаще всего для создания Makefile, в который и записывается то, о чем я сказал раньше).

2) Если в переменной $PATH путь /usr/bin стоит раньше пути /usr/local/bin, то при выполнении gcc --version будет найден /usr/bin/gcc раньше, чем /usr/local/bin/gcc. Поэтому естесвенно, что ответ будет 2.96 в нашем случае.
Именно поэтому необходимо задать переменную CC=/usr/local/bin/gcc перед компиляцией (и желательно также подсказать, какой препроцессор использовать - вторая команда).

Аватар пользователя debug

Re: в очередной раз о GCC

Да, спасибо. В PATH поменял местами пути, поставив вперёд /usr/local/bin.
Правда я то думал - по незнанию, что установив CC и GCC будет запускаться именно тот gcc, который находится по путям в этих переменных. Значит они не нужны при работе вообще а только при конфигурировании.

Аватар пользователя Archont

Re: в очередной раз о GCC

Цитата:
debug пишет:
Да, спасибо. В PATH поменял местами пути, поставив вперёд /usr/local/bin.
Правда я то думал - по незнанию, что установив CC и GCC будет запускаться именно тот gcc, который находится по путям в этих переменных. Значит они не нужны при работе вообще а только при конфигурировании.

Откуда ты всю эту хрень почерпнул?
Я тебе ничего подобного не рекомендовал!

Перечтитай все с самого начала и включи уже мозги! Без мозгов лучше ничего не компилировать. Да и вообще лучше в системе ничего не менять!

RSS-материал