Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++: IDE, инструментарий
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.74/35: Рейтинг темы: голосов - 35, средняя оценка - 4.74
DiffEreD
1442 / 779 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
1

Установка последнего gcc, clang и boost

19.08.2015, 12:08. Просмотров 6528. Ответов 64
Метки нет (Все метки)

Помогите начинающему пользователю Linux. Я никак не могу разобраться как в этой системе что либо устанавливать. Кое как установил себе QtCreator (из предварительно скаченного run файла), но никак не пойму как установить к нему компиляторы. Для gcc пробовал такое:
sudo apt-get install g++-5
Мне в ответ:
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
E: Не удалось найти пакет g++-5
E: Не удалось найти пакет по регулярному выражению «g++-5»
У меня есть еще скачанный архив gcc-5.2.0.tar.bz2 на диске - может как то с него можно установить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.08.2015, 12:08
Ответы с готовыми решениями:

[SFINAE] GCC/Clang - success. CL - failed
добрый вечер. следующий код успешно собирают gcc/clang но не может собрать...

Clang + lldb + Qt
Всем привет. lldb настойчиво не может развернуть кутешные структуры (да и не...

clang начал поддерживать С++14
Привет! Вот такая новость :) Все, что реализовано можно посмотреть здесь (там...

Пытаемся подружить clang 3.6 и Code::Blocks 13.12 + MinGW под Windows 7
Скачал clang. Установил в корень диска С. То есть, путь получился такой: До...

Пытаемся прикрутить Clang к QtCreator под Windows7 x64 посредством MSYS2
По мотивам этой темы: DrOffset, а как?

64
DiffEreD
1442 / 779 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
19.08.2015, 20:34  [ТС] 21
Я все исходники переместил в папку install. Папка gcc-5.2.0 пустая.

Добавлено через 1 минуту

Не по теме:

Уж очень долго уже эта сборка идет...



Добавлено через 2 минуты
Попутно вопрос - а что не существует готовых сборок так чтоб скачал, распаковал и пользуешься, как например сборки MinGW для Windows?
0
DrOffset
8142 / 4723 / 1154
Регистрация: 30.01.2014
Сообщений: 7,693
19.08.2015, 20:41 22
Цитата Сообщение от DiffEreD Посмотреть сообщение
Попутно вопрос - а что не существует готовых сборок так чтоб скачал, распаковал и пользуешься, как например сборки MinGW для Windows?
Не в курсе.
Я привык все сам контролировать, поэтому не интересовался.
Даже если ты найдешь такую сборку, неужели плохо, что представился шанс научиться делать это самому?
3
Max Dark
19.08.2015, 20:56
  #23

Не по теме:

Цитата Сообщение от DiffEreD Посмотреть сообщение
Уж очень долго уже эта сборка идет...
Вроде там сборка в 2 этапа: сначала собирается системным компилятором промежуточный, потом пересобирает этим временным конечную версию...

0
gng
809 / 553 / 168
Регистрация: 08.09.2013
Сообщений: 1,498
19.08.2015, 21:40 24
Цитата Сообщение от DiffEreD Посмотреть сообщение
Попутно вопрос - а что не существует готовых сборок так чтоб скачал, распаковал и пользуешься, как например сборки MinGW для Windows?
От разрабов, думаю, нет. Исходники берутся либо из их svn, либо нужная версиию из архива.
Бинарные пакеты собираются монтейнерами дистрибутивов.
Выкладывать бинарные архивы, как в Венде, принято разве что для проприетарных программ, да и те чаще собирают пакеты под основные дистрибутивы.
Причин тому несколько:
1) Много разных архитектур, конфигураций сборки и т.д. Под каждую пришлось бы собирать отдельно и паковать в архив.
2) Программа может зависеть от библиотек конкретной версии, которые должны быть установлены отдельно. Паковать вместе с программой все её зависимости, разводя на компьютере пользователя зоопарк библиотек различных версий, как это принято в Венде - мягко говоря, не лучшее решение.
3) Разработчику особо не хочется тратить время на то, что должен делать монтейнер, либо пользователь.

Сборка из исходников - не сложное занятие. Её освоили и админы, и даже многие пользователи. Вам же, будущему программисту Юникс, такой навык просто необходим, о чем вам уже деликатно сказал DrOffset.
2
DiffEreD
1442 / 779 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
20.08.2015, 14:15  [ТС] 25
Итак, вчера вроде все удачно собрал, все прошло без ошибок. В результате получил папку с директориями:
Кликните здесь для просмотра всего текста
Bash
1
2
3
4
5
6
7
bin
include
lib
lib32
lib64
libexec
share
В папке bin есть такие файлы как c++5.2, cpp5.2, g++5.2, gcc5.2, ... В QtCreator добавляю новый компилятор по пути /home/<user>/opt/gcc-5.2.0/bin/g++5.2. Комплекты и Qt Versions настроил как обычно настраивал в windows. При компиляции кода:
C++
1
2
3
4
5
6
7
8
#include <iostream>
 
using namespace std;
 
int main()
{
    cout << __VERSION__ << endl;
}
получаю
Bash
1
4.9.2
Почему не 5.2.0 ?

Да, и еще, в собранной мной папке bin почему то нету отладчика gdb. QtCreator системный использует из папки usr/bin/gdb
0
gng
809 / 553 / 168
Регистрация: 08.09.2013
Сообщений: 1,498
20.08.2015, 16:33 26
Цитата Сообщение от DiffEreD Посмотреть сообщение
Почему не 5.2.0 ?
а если в командной строке набрать?
Bash
1
/home/<user>/opt/gcc-5.2.0/bin $ g++-5.2 --version
Для справки:
Собранные из исходников программы обчно размещают в /usr/local/bin, /usr/local/lib...
Сторонние бинарные программы - в /opt
Программы только для конкретного пользователя - в $HOME/bin
В переменную окружения $PATH перед стандартными путями добавляют пути локального расположения исполняемых файлов.
Цитата Сообщение от DiffEreD Посмотреть сообщение
в собранной мной папке bin почему то нету отладчика gdb. QtCreator системный использует из папки usr/bin/gdb
Да, тот, который указан в его настройках. Если вам нужен другой - его также можно собрать из исходников.
1
DiffEreD
1442 / 779 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
20.08.2015, 16:52  [ТС] 27
Открыл терминал в папке bin, ввожу:
Bash
1
2
g++5.2 --version
g++5.2: команда не найдена
Добавлено через 42 секунды
Странно, файл то существует.

Добавлено через 1 минуту
И еще, я не могу скопировать файлы в /usr/local/bin - защита от записи. Снять не получается.
0
DrOffset
8142 / 4723 / 1154
Регистрация: 30.01.2014
Сообщений: 7,693
20.08.2015, 18:05 28
Цитата Сообщение от DiffEreD Посмотреть сообщение
Странно, файл то существует.
Bash
1
./g++5.2 --version
Цитата Сообщение от DiffEreD Посмотреть сообщение
И еще, я не могу скопировать файлы в /usr/local/bin - защита от записи. Снять не получается.
Не надо этого делать. Лучше ссылки создай.
А вообще для этого права рута нужны, ну или sudo.
1
DiffEreD
1442 / 779 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
20.08.2015, 18:33  [ТС] 29
Bash
1
2
3
4
5
./g++5.2 --version
g++5.2 (GCC) 5.2.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Добавлено через 3 минуты
Значит, что все хорошо собралось.
Как теперь заставить QtCreator с ним работать?

Добавлено через 5 минут

Не по теме:

А что значит ./

0
DrOffset
8142 / 4723 / 1154
Регистрация: 30.01.2014
Сообщений: 7,693
20.08.2015, 18:58 30
Цитата Сообщение от DiffEreD Посмотреть сообщение
Как теперь заставить QtCreator с ним работать?
Параметры->Сборка и запуск->Компиляторы.
Там настраивается тулчейн по кнопке "Добавить".

Цитата Сообщение от DiffEreD Посмотреть сообщение
А что значит ./
Запускать из текущего каталога.
0
Croessmah
++Ͻ
14616 / 8368 / 1578
Регистрация: 27.09.2012
Сообщений: 20,565
Записей в блоге: 2
Завершенные тесты: 1
20.08.2015, 19:13 31
Поменять линк в папке bin?
Плюс учтите, что в новом компиляторе gcc другой ABI, несовместимый со старыми версиями.
1
DiffEreD
1442 / 779 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
20.08.2015, 19:22  [ТС] 32
Цитата Сообщение от DrOffset Посмотреть сообщение
Параметры->Сборка и запуск->Компиляторы.
Там настраивается тулчейн по кнопке "Добавить".
На Windows все это уже не раз делал. Тут тоже самое - добавляю компилятор, тот что в bin/g++5.2, но что то не так.

Добавлено через 2 минуты
Цитата Сообщение от Croessmah Посмотреть сообщение
Поменять линк в папке bin?
Что это значит?
0
Croessmah
++Ͻ
14616 / 8368 / 1578
Регистрация: 27.09.2012
Сообщений: 20,565
Записей в блоге: 2
Завершенные тесты: 1
20.08.2015, 19:30 33
Создать символьную ссылку g++ на новую версию компилятора. Примерно так:
ln -s /g++5_path/g++5.2 /usr/bin/g++
Так же cc и т.д. может и поможет.
0
DiffEreD
1442 / 779 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
20.08.2015, 19:50  [ТС] 34
Вот скрины моих настроек:
Кликните здесь для просмотра всего текста
Установка последнего gcc, clang и boost
Установка последнего gcc, clang и boost
0
DiffEreD
1442 / 779 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
20.08.2015, 21:47  [ТС] 35
Цитата Сообщение от DrOffset Посмотреть сообщение
Не надо этого делать. Лучше ссылки создай.
Я все равно не понял. Какие ссылки куда и на что создавать? Как их создавать, через терминал? Что с ними потом делать? Извиняюсь, что столько вопросов задаю, но линукс для меня еще очень непонятен.

Добавлено через 1 час 23 минуты
Сделал так:
Bash
1
sudo ln -s * /usr/local/bin/
Создались ссылки на все файлы с папки bin с моим компилятором.

Добавлено через 2 минуты
Как бы то ни было, но вывод через QtCreator снова 4.9.2

Добавлено через 26 минут
А может это этот макрос "сломан"
C++
1
cout << __VERSION__ << endl;
Я вот смотрю на заголовочные файлы, куда они ведут с IDE. Например iostream - если выбрать Открыть каталог файла, то там все правильно, - заголовок расположен в папке opt/gcc-5.2.0/include/c++/5.2.0/. Выходит, что среда настроена правильно.
Моя догадка такова - наверное IDE компилирует программу с помощью gcc-5.2.0, а потом запускает с консоли с помощью штатного компилятора - gcc-4.9.2. Я прав?
0
Angelina Jolie
0 / 0 / 3
Регистрация: 07.02.2015
Сообщений: 153
20.08.2015, 22:04 36
Вопрос такой, зачем нужен именно gcc-5.2.0? и не проще ли дождаться 16.04 lts где по дефолту будет gcc5 стоять?
0
DiffEreD
1442 / 779 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
20.08.2015, 23:21  [ТС] 37
Цитата Сообщение от Angelina Jolie Посмотреть сообщение
зачем нужен именно gcc-5.2.0?
Потому что хочу иметь самую новую версию компилятора плюс хочу понять как это все правильно самому зашаманить на будущее.
Цитата Сообщение от Angelina Jolie Посмотреть сообщение
не проще ли дождаться 16.04
Как выйдет, сразу же поставлю.
0
DrOffset
8142 / 4723 / 1154
Регистрация: 30.01.2014
Сообщений: 7,693
20.08.2015, 23:32 38
Цитата Сообщение от DiffEreD Посмотреть сообщение
Я все равно не понял. Какие ссылки куда и на что создавать?
Ты хотел что-то копировать в /usr/local/bin. Я сказал, что лучше не копировать, а создать там ссылки на эти файлы.
Собственно все.
Цитата Сообщение от DiffEreD Посмотреть сообщение
Как бы то ни было, но вывод через QtCreator снова 4.9.2
Странно это как-то.
В общем я проверить настройку сейчас все равно не могу. Писал по памяти.
Посмотрю завтра на работе.
0
gng
809 / 553 / 168
Регистрация: 08.09.2013
Сообщений: 1,498
21.08.2015, 00:01 39
Цитата Сообщение от DiffEreD Посмотреть сообщение
Я все равно не понял. Какие ссылки куда и на что создавать?
Если вы установили собранный gcc (3-й этап) штатным способом (make install от рута), то все исполняемые файлы у вас уже в указанном месете (/usr/local/bin, если вы не указали иного во время конфигурирования - 1 этап), а также все необходимые ссылки уже созданы.
Какая версия запускается по умолчанию вы можете проверить, например, так
$(which g++) --version
Цитата Сообщение от DiffEreD Посмотреть сообщение
Моя догадка такова - наверное IDE компилирует программу с помощью gcc-5.2.0, а потом запускает с консоли с помощью штатного компилятора - gcc-4.9.2. Я прав?
Для запуска бинарника компилятор не нужен. Попробуйте запустить свой бинарник с консоли.
0
Croessmah
++Ͻ
14616 / 8368 / 1578
Регистрация: 27.09.2012
Сообщений: 20,565
Записей в блоге: 2
Завершенные тесты: 1
21.08.2015, 04:55 40
Цитата Сообщение от DiffEreD Посмотреть сообщение
Создались ссылки на все файлы с папки bin с моим компилятором.
только названия у нх так и остались g++5.2 и т.д.
Я привел пример /g++5_path/g++5.2 /usr/bin/g++
ну и старые ссылочки почистить

Добавлено через 1 минуту
Цитата Сообщение от gng Посмотреть сообщение
то все исполняемые файлы у вас уже в указанном месете
да нифига, у меня 5.2 тоже сам не встал куда нужно, прописывал символьные ссылки руками
0
21.08.2015, 04:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2015, 04:55

GCC/Clang bug
Пытаюсь разбить строку на токены при помощи массива указателей и strtok. Вот...

msp430-gcc, clang и mspdebug повесть о косяках
При отладке программ под arm-none-eabi, для просмотра регистров в отладчике...

boost::threads vs gcc 4.8.2
Добрый день, ребят такая проблема, на centos 6.3 стояли gcc 4.4.x и boost...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru