Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++: IDE, инструментарий

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 33, средняя оценка - 4.91
DiffEreD
1432 / 769 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
#1

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

19.08.2015, 12:08. Просмотров 5717. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Установка последнего gcc, clang и boost (C++ IDE):

Clang + lldb + Qt - C++ IDE
Всем привет. lldb настойчиво не может развернуть кутешные структуры (да и не только кутешные, с бустом у него тоже не очеь хорошо). То...

clang начал поддерживать С++14 - C++
Привет! Вот такая новость :) Все, что реализовано можно посмотреть здесь (там снизу). Сейчас попробовал следующий код #include...

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

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

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

boost::threads vs gcc 4.8.2 - Boost C++
Добрый день, ребят такая проблема, на centos 6.3 стояли gcc 4.4.x и boost версию точно не знаю, сверху накатил gcc 4.8.2 из исходников,...

64
DrOffset
7387 / 4464 / 1013
Регистрация: 30.01.2014
Сообщений: 7,317
19.08.2015, 18:25 #16
Цитата Сообщение от DiffEreD Посмотреть сообщение
В папке build файл configure есть.
Тонкость: распаковать надо в каталог, например, /home/<user>/install/gcc-5.2.0
Внутри нее создать подкаталог build. т.е. /home/<user>/install/gcc-5.2.0/build
Он будет пустой. Зайти туда и там уже выполнить ../configure <параметры>.
Это надо сделать обязательно.

Цитата Сообщение от DiffEreD Посмотреть сообщение
Но вот что он выдал
Система x64?
Покажи что выводит штатный gcc -v.
0
DiffEreD
1432 / 769 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
19.08.2015, 19:06  [ТС] #17
Цитата Сообщение от DrOffset Посмотреть сообщение
Покажи что выводит штатный gcc -v
То, что он выводил раньше уже неважно - я снес эту Kubuntu и поставил чистую сборку Ubuntu 15.04 64bit. Вот что там теперь она выводит по команде gcc -v:
Кликните здесь для просмотра всего текста
Bash
1
2
3
4
5
6
7
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.9/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.9.2-10ubuntu13' --with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.9 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.9 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.9.2 (Ubuntu 4.9.2-10ubuntu13)
Цитата Сообщение от DrOffset Посмотреть сообщение
Тонкость: распаковать надо в каталог, например, /home/<user>/install/gcc-5.2.0
Внутри нее создать подкаталог build. т.е. /home/<user>/install/gcc-5.2.0/build
Он будет пустой. Зайти туда и там уже выполнить ../configure <параметры>.
Делаю так: нахожусь в терминале в папке install/gcc-5.2.0/buildВвожу команду:
Кликните здесь для просмотра всего текста
Bash
1
2
3
4
5
6
../configure --disable-checking --enable-languages=c,c++ \
  --enable-multiarch --enable-shared --enable-threads=posix \
  --program-suffix=5.2 --with-gmp=/usr/local/lib --with-mpc=/usr/lib \
  --with-mpfr=/usr/lib --without-included-gettext --with-system-zlib \
  --with-tune=generic \
  --prefix=$HOME/install/gcc-5.2.0
Результат:
Кликните здесь для просмотра всего текста
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
yurion@yurion-Rampage-Formula:~/install/gcc-5.2.0/build$ ../configure --disable-checking --enable-languages=c,c++ \
>   --enable-multiarch --enable-shared --enable-threads=posix \
>   --program-suffix=5.2 --with-gmp=/usr/local/lib --with-mpc=/usr/lib \
>   --with-mpfr=/usr/lib --without-included-gettext --with-system-zlib \
>   --with-tune=generic \
>   --prefix=$HOME/install/gcc-5.2.0
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln works... yes
checking whether ln -s works... yes
checking for a sed that does not truncate output... /bin/sed
checking for gawk... no
checking for mawk... mawk
checking for libatomic support... yes
checking for libcilkrts support... yes
checking for libitm support... yes
checking for libsanitizer support... yes
checking for libvtv support... yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether g++ accepts -static-libstdc++ -static-libgcc... yes
checking for gnatbind... no
checking for gnatmake... no
checking whether compiler driver understands Ada... no
checking how to compare bootstrapped objects... cmp --ignore-initial=16 $$f1 $$f2
checking for objdir... .libs
checking for the correct version of gmp.h... yes
checking for the correct version of mpfr.h... yes
checking for the correct version of mpc.h... yes
checking for the correct version of the gmp/mpfr/mpc libraries... yes
checking for compatible ISL... no
*** This configuration is not supported in the following subdirectories:
     zlib target-libmpx gnattools gotools target-libada target-libgfortran target-libgo target-libffi target-libbacktrace target-zlib target-libjava target-libobjc target-liboffloadmic target-boehm-gc
    (Any other directories should still work fine.)
checking for default BUILD_CONFIG... bootstrap-debug
checking for --enable-vtable-verify... no
/usr/bin/ld: cannot find crt1.o: No such file or directory
/usr/bin/ld: cannot find crti.o: No such file or directory
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.9/libgcc.a when searching for -lgcc
/usr/bin/ld: cannot find -lgcc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.9/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
/usr/bin/ld: cannot find -lc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.9/libgcc.a when searching for -lgcc
/usr/bin/ld: cannot find -lgcc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.9/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
/usr/bin/ld: cannot find crtn.o: No such file or directory
collect2: error: ld returned 1 exit status
configure: error: I suspect your system does not have 32-bit developement libraries (libc and headers). If you have them, rerun configure with --enable-multilib. If you do not have them, and want to build a 64-bit-only compiler, rerun configure with --disable-multilib.
yurion@yurion-Rampage-Formula:~/install/gcc-5.2.0/build$ make -j2
make: *** Не заданы цели и не найден make-файл.  Останов.
yurion@yurion-Rampage-Formula:~/install/gcc-5.2.0/build$


Добавлено через 1 минуту
До этого ставил это:
Bash
1
sudo apt-get install libmpfr-dev libgmp3-dev libmpc-dev flex bison
0
DrOffset
7387 / 4464 / 1013
Регистрация: 30.01.2014
Сообщений: 7,317
19.08.2015, 19:10 #18
Цитата Сообщение от DiffEreD Посмотреть сообщение
Результат
Попробуй поставить еще пакет gcc-multilib.
1
DiffEreD
1432 / 769 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
19.08.2015, 19:24  [ТС] #19
Да, теперь дело пошло.

Добавлено через 1 минуту
Упс, на команде make через пару минут:
Кликните здесь для просмотра всего текста
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
g++ -c   -g -DIN_GCC    -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I../../gcc -I../../gcc/. -I../../gcc/../include -I../../gcc/../libcpp/include -I/usr/local/lib/include -I/usr/lib/include -I/usr/lib/include  -I../../gcc/../libdecnumber -I../../gcc/../libdecnumber/bid -I../libdecnumber -I../../gcc/../libbacktrace   -o mcf.o -MT mcf.o -MMD -MP -MF ./.deps/mcf.TPo ../../gcc/mcf.c
../../gcc/lto-compress.c:28:18: fatal error: zlib.h: Нет такого файла или каталога
 #include <zlib.h>
                  ^
compilation terminated.
Makefile:1065: ошибка выполнения рецепта для цели «lto-compress.o»
make[3]: *** [lto-compress.o] Ошибка 1
make[3]: *** Ожидание завершения заданий…
rm gcc.pod
make[3]: выход из каталога «/home/yurion/install/gcc-5.2.0/build/gcc»
Makefile:4371: ошибка выполнения рецепта для цели «all-stage1-gcc»
make[2]: *** [all-stage1-gcc] Ошибка 2
make[2]: выход из каталога «/home/yurion/install/gcc-5.2.0/build»
Makefile:19710: ошибка выполнения рецепта для цели «stage1-bubble»
make[1]: *** [stage1-bubble] Ошибка 2
make[1]: выход из каталога «/home/yurion/install/gcc-5.2.0/build»
Makefile:902: ошибка выполнения рецепта для цели «all»
make: *** [all] Ошибка 2
yurion@yurion-Rampage-Formula:~/install/gcc-5.2.0/build$ make install
make[1]: вход в каталог «/home/yurion/install/gcc-5.2.0/build»
/bin/bash ../mkinstalldirs /home/yurion/install/gcc-5.2.0 /home/yurion/install/gcc-5.2.0
make[2]: вход в каталог «/home/yurion/install/gcc-5.2.0/build/fixincludes»
make[2]: *** Нет правила для сборки цели «install».  Останов.
make[2]: выход из каталога «/home/yurion/install/gcc-5.2.0/build/fixincludes»
Makefile:3632: ошибка выполнения рецепта для цели «install-fixincludes»
make[1]: *** [install-fixincludes] Ошибка 2
make[1]: выход из каталога «/home/yurion/install/gcc-5.2.0/build»
Makefile:2303: ошибка выполнения рецепта для цели «install»
make: *** [install] Ошибка 2
0
DrOffset
7387 / 4464 / 1013
Регистрация: 30.01.2014
Сообщений: 7,317
19.08.2015, 19:47 #20
Цитата Сообщение от DiffEreD Посмотреть сообщение
Упс
Ничего страшного. Поставь еще zlib1g-dev

Добавлено через 19 минут
Цитата Сообщение от DiffEreD Посмотреть сообщение
--prefix=$HOME/install/gcc-5.2.0
Кстати, так лучше не делать.
Лучше смени путь на что-то вроде /opt/gcc-5.2.0
А то он поставит себя туда же, где у тебя исходники лежат.
1
DiffEreD
1432 / 769 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
19.08.2015, 20:34  [ТС] #21
Я все исходники переместил в папку install. Папка gcc-5.2.0 пустая.

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

Не по теме:

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



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

Не по теме:

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

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

Сборка из исходников - не сложное занятие. Её освоили и админы, и даже многие пользователи. Вам же, будущему программисту Юникс, такой навык просто необходим, о чем вам уже деликатно сказал DrOffset.
2
DiffEreD
1432 / 769 / 95
Регистрация: 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
645 / 491 / 133
Регистрация: 08.09.2013
Сообщений: 1,326
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
1432 / 769 / 95
Регистрация: 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
7387 / 4464 / 1013
Регистрация: 30.01.2014
Сообщений: 7,317
20.08.2015, 18:05 #28
Цитата Сообщение от DiffEreD Посмотреть сообщение
Странно, файл то существует.
Bash
1
./g++5.2 --version
Цитата Сообщение от DiffEreD Посмотреть сообщение
И еще, я не могу скопировать файлы в /usr/local/bin - защита от записи. Снять не получается.
Не надо этого делать. Лучше ссылки создай.
А вообще для этого права рута нужны, ну или sudo.
1
DiffEreD
1432 / 769 / 95
Регистрация: 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
7387 / 4464 / 1013
Регистрация: 30.01.2014
Сообщений: 7,317
20.08.2015, 18:58 #30
Цитата Сообщение от DiffEreD Посмотреть сообщение
Как теперь заставить QtCreator с ним работать?
Параметры->Сборка и запуск->Компиляторы.
Там настраивается тулчейн по кнопке "Добавить".

Цитата Сообщение от DiffEreD Посмотреть сообщение
А что значит ./
Запускать из текущего каталога.
0
20.08.2015, 18:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.08.2015, 18:58
Привет! Вот еще темы с ответами:

Установка gcc на Code::Blocks - Кроссплатформенная разработка
Я скачал gcc, но там папка с кучей папок и файлами. Там нету ни одного .exe-файла. Мне в этом ничего не понятно. Я новичок в мире...

Установка boost - C++ Builder
Добрый день, уважаемые обитатели! Прошу, помогите с установкой boost 1_53_0 на RAD XE2. Документация на сайте мне ничем не помогла и...

Установка boost - Boost C++
Здарова господа! Вообщем установил boost не знаю какой версии (последней наверно) такой командой sudo apt-get install...

Boost Установка - Boost C++
ребят помогите установить буст либы в борланд спп 6. даю команду C:\Program Files\boost\boost_1_43_0&gt;bjam...


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

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

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