Меню Рубрики

Установка gcc из исходников

Как установить компилятор GCC на Ubuntu 18.04

Главное меню » Операционная система Ubuntu » Как установить компилятор GCC на Ubuntu 18.04

В этой статье рассматриваются шаги, необходимые для установки компилятора GCC в Ubuntu 18.04. Мы покажем вам, как установить стабильную версию дистрибутива и последнюю версию GCC.

Те же инструкции применимы для Ubuntu 16.04 и любого дистрибутива на основе Ubuntu, включая Kubuntu, Linux Mint и Elementary OS.

Предпосылки

Чтобы иметь возможность добавлять новые репозитории и устанавливать пакеты в вашей системе Ubuntu, вы должны войти в систему как пользователь с привилегиями sudo.

Установка GCC на Ubuntu

Репозитории Ubuntu по умолчанию содержат метапакет с именем build-essential, который содержит компилятор GCC и множество библиотек и других утилит, необходимых для компиляции программного обеспечения.

Выполните следующие шаги для установки компилятора GCC Ubuntu 18.04:

  1. Начните с обновления списка пакетов:
  2. Установите пакет build-essential, набрав:

Команда будет установить несколько новых пакетов , включая gcc, g++и make.

Вы также можете установить страницы руководства по использованию GNU/Linux для разработки:

Чтобы проверить, что компилятор GCC успешно установлен, используйте команду gcc –version, которая напечатает версию GCC:

Версия GCC по умолчанию, доступная в репозиториях Ubuntu 18.04 7.4.0:

Вот и все. GCC теперь установлен в вашей системе, и вы можете начать использовать его.

Компиляция примера Hello World

Компиляция базовой программы на C или C++ с использованием GCC довольно проста. Откройте ваш текстовый редактор и создайте следующий файл:

Сохраните файл и скомпилируйте его в исполняемый файл с помощью следующей команды:

Это создаст двоичный файл с именем hello в том же каталоге, где вы запускаете команду.

Выполните программу hello с:

Установка нескольких версий GCC

В этом разделе мы предоставим инструкции о том, как установить и использовать несколько версий GCC в Ubuntu 18.04. Новые версии компилятора GCC включают поддержку новых языков, лучшую производительность, расширенные функции.

На момент написания этой статьи стандартные репозитории Ubuntu включали в себя несколько версий GCC, от 5.x.xдо 8.x.x. Последняя версия GCC 9.1.0 доступна в Ubuntu Toolchain PPA.

В следующем примере мы установим последние три версии GCC и G ++.

Сначала добавьте ubuntu-toolchain-r/testPPA в вашу систему с помощью:

Установите нужные версии GCC и G ++, набрав:

Команды ниже настроят альтернативу для каждой версии и свяжут с ней приоритет. По умолчанию используется версия с наивысшим приоритетом, в нашем случае это gcc-9.

Позже, если вы хотите изменить версию по умолчанию, используйте команду update-alternatives:

Вам будет представлен список всех установленных версий GCC в вашей системе Ubuntu. Введите номер версии, которую вы хотите использовать по умолчанию, и нажмите Enter.

Команда создаст символические ссылки на конкретные версии GCC и G ++.

Заключение

Вы успешно установили GCC на Ubuntu 18.04. Теперь вы можете посетить официальную страницу документации GCC и узнать, как использовать GCC и G ++ для компиляции ваших программ на C и C ++.

Если вы столкнулись с проблемой или у вас есть отзыв, оставьте комментарий ниже.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

источник

Установка GCC в Ubuntu 16.04

Большинство программ в Linux написаны на Си или С++, и если вы хотите собирать их из исходников, то вам обязательно понадобиться компилятор, также он понадобиться, если захотите начать писать свои программы на одном из этих языков.

Существует два основных компилятора в Linux — это GCC и Clang, они похожи по своим возможностям, но так сложилось, что первый считается стандартом для Ubuntu. GCC расшифровывается как GNU Compiler Collection. В этой статье мы рассмотрим как выполняется установка GCC Ubuntu 16.04, а также рассмотрим базовые приемы работы с этим набором программ в терминале.

Набор компиляторов GCC

Все программы представляют собой набор машинных команд, которые выполняются процессором. Эти команды — последовательность бит. Но писать программы наборами бит очень неудобно, поэтому были придуманы языки программирования высокого уровня. Код на языке программирования хорошо читаем и понятен для человека, а когда из него нужно сделать программу, компилятор ubuntu преобразует все в машинные команды.

В базовую поставку компилятора входят такие программы:

  • libc6-dev — заголовочные файлы стандартной библиотеки Си;
  • libstdc++6-dev — заголовочные файлы стандартной библиотеки С++;
  • gcc — компилятор языка программирования Си;
  • g++ — компилятор языка программирования C++;
  • make — утилита для организации сборки нескольких файлов;
  • dpkg-dev — инструменты сборки пакетов deb.

Все эти пакеты являются зависимостями пакета build-essential, поэтому для установки всего необходимого достаточно установить этот пакет.

Установка GCC в Ubuntu 16.04

Если вас устраивает текущая версия GCC, которая есть в официальных репозиториях дистрибутива, то вам достаточно установить пакет build-essential. Для этого выполните команду:

sudo apt install build-essential

После завершения выполнения все необходимое для компиляции программ будет установлено. И вы сможете использовать компилятор ubuntu. Давайте посмотрим версии и расположение компиляторов:

Но если вы хотите более новую версию компилятора, например, на данный момент последняя версия — 6.2, то можно использовать PPA разработчиков с тестовыми сборками. Для добавления PPA в систему выполните:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
$ sudo apt update

Затем установите сами компиляторы:

sudo apt install gcc-snapshot
$ sudo apt install gcc-6 g++-6

Это не заменит ваш текущий компилятор на новый. В системе просто появятся компиляторы gcc-6 и g++-6, которые вы можете использовать для своих программ. Это лучший вариант на данный момент, но если вы хотите все же сделать gcc-6 компилятором по умолчанию, выполните:

sudo update-alternatives —install /usr/bin/gcc gcc /usr/bin/gcc-6 60 —slave /usr/bin/g++ g++ /usr/bin/g++-6

Готово, теперь вы можете проверить версию gcc-6:

Установка GCC Ubuntu 16.04 завершена, и можно переходить к сборке программ. Для удаления компилятора достаточно удалить пакет build-essential:

sudo apt purge build-essential
$ sudo apt autoremove

А чтобы заменить новую версию обратно, установите и замените настройки программ по умолчанию:

sudo apt-get install gcc-4.8 g++-4.8
$ sudo update-alternatives —install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 —slave /usr/bin/g++ g++ /usr/bin/g++-4.8;

Использование GCC в Ubuntu 16.04

Давайте рассмотрим пример компиляции минимальной программы hello.c для освоения работы с gcc. Вот код программы, сохраните его в файле hello.c:

int main(void)
<
printf(«Hello, world!\n»);
return 0;
>

Теперь запустим сборку программы:

Когда сборка программы будет завершена, вы можете ее запустить:

Готово, компилятор прекрасно работает в системе, и теперь вы можете писать свои программы или собирать чужие.

Выводы

В этой статье мы рассмотрели как установить gcc Ubuntu 16.04, это один из самых популярных компиляторов для этой операционной системы. И устанавливается он очень просто, если у вас остались вопросы, спрашивайте в комментариях!

На завершение видео с демонстрацией самого процесса:

источник

Как установить компилятор GCC на Linux Debian из исходников?

/gcc-6.2.0# ls
ABOUT-NLS depcomp libgfortran lto-plugin
boehm-gc fixincludes libgo ltoptions.m4
ChangeLog gcc libgomp ltsugar.m4
ChangeLog.jit gnattools libiberty ltversion.m4
ChangeLog.tree-ssa gotools libitm MAINTAINERS
compile include libjava maintainer-scripts
config INSTALL libmpx Makefile.def
config.guess install-sh libobjc Makefile.in
config-ml.in intl liboffloadmic Makefile.tpl
config.rpath LAST_UPDATED libquadmath MD5SUMS
config.sub libada libsanitizer missing
configure libatomic libssp mkdep
configure.ac libbacktrace libstdc++-v3 mkinstalldirs
contrib libcc1 libtool-ldflags move-if-change
COPYING libcilkrts libtool.m4 NEWS
COPYING3 libcpp libvtv README
COPYING3.LIB libdecnumber ltgcc.m4 symlink-tree
COPYING.LIB libffi ltmain.sh ylwrap
COPYING.RUNTIME libgcc lt

/gcc-6.2.0# gedit install-sh
root@dog:

/gcc-6.2.0# ./configure
checking build system type. x86_64-pc-linux-gnu
checking host system type. x86_64-pc-linux-gnu
checking target system type. x86_64-pc-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 libmpx 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. no
configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.
Try the —with-gmp, —with-mpfr and/or —with-mpc options to specify
their locations. Source code for these libraries can be found at
their respective hosting sites as well as at
ftp://gcc.gnu.org/pub/gcc/infrastructure/. See also
gcc.gnu.org/install/prerequisites.html for additional info. If
you obtained GMP, MPFR and/or MPC from a vendor distribution package,
make sure that you have installed both the libraries and the header
files. They may be located in separate packages.
root@dog:

/gcc-6.2.0# make
make: *** Не заданы цели и не найден make-файл. Останов.
root@dog:

/gcc-6.2.0# make install
make: *** Нет правила для сборки цели «install». Останов.

Как вы уже поняли, я не знаю как продолжить установку компилятора GCC. Пожалуйста помогите!)

источник

сборка gcc из исходников

здравствуйте, есть необходимость собрать gcc из исходников на debian-е. мне не нужно чтобы собранный gcc был как дефолтный, нужно чтобы он просто лежат в директории и им я собирал определенные пакеты только. посему вопрос: какие траблы могут быть после make install команды, вызванной в конце сборки? затрутся ли какие то конфиги дефолтного gcc?

Установлено будет в /директория_для_самособранного_gcc

А вообще, в дебиане своя система сборки, надо править всякие файлики в debian (debian/rules и пр) и потом dpkg-buildpackage делать. Получишь дебиановский пакет с твоими путями к gcc

меня как раз интересует последняя строчка make install. будут ли траблы?

меня как раз интересует последняя строчка make install. будут ли траблы?

Могут быть, если будешь интересоваться строчкой make install, вместо строчки configure —prefix.

Будут ли траблы зависит от того, что ты напишешь в —prefix=

а не известно как удалить ненужные бинарники которые насобирались? чет не нашел, а то заняли 10GB диска

Если ещё не снёс то, что после make получилось, то можно попробовать сделать

так дело в том, что диск начал забиваться черти чем еще на стадии make. я так понимаю, просто объектные файлы скомпилировались, вот можно ли как-то все грамотно удалить, а не find . -name «*.o» -delete ?

Ты б хоть почитал чего, ради приличия.

а, точняк, что-то не подумал что так просто

А вообще, в дебиане своя система сборки, надо править всякие файлики в debian (debian/rules и пр) и потом dpkg-buildpackage делать. Получишь дебиановский пакет с твоими путями к gcc

В качестве образца можно взять пакет gcc-snapshot — весь gcc будет в одном пакете.

мне не нужно чтобы собранный gcc был как дефолтный

1. Наложить патчи, которые применяет Debian.

2. Сконфигурировать точно как и в дефолтном (за исключением prefix):

все-таки make clean не то: он сносит все созданные бинарники. а мне нужно удалить лишь объектные файлы которые во время сборки создались, сам конечный бинарник gcc сносить то не нужно

к тому же в bin наплодилась куча бинарников: какие из них нужны кроме gcc и g++?

все-таки make clean не то: он сносит все созданные бинарники.

Ну правда, почитай уже чего-нибудь, что-ли. Собирать gcc методом тыка — очень плохая идея.

а не дадите ссылку на этот самый gcc-snapshot? а то что-то найти никак не могу

Зачем тебе это? make install копирует всё собранное по нужным путям. Каталог с сорсами, объектными файлами и прочим хабаром на установленную программу уже никак не влияет, его даже снести можно.

Тебе же уже написали, как ставить в указанный каталог, не трогая систему.

ну с этим то я уж давно разобрался. есть задача просто деб-пакет gcc6.3 под wheezy собрать. реально ли вообще это

Если об версию glibc или ядра не споткнешься, например.

главное устанавливай (—prefix) в какой-то свой каталог..

но проблема тут в другом. : увязать этот новый компилятор с остальными частями системы — задача из нетривиальных. вплоть до всяческих конфликтов с заголовками и прочий лабудой.. кроме того, заголовки, исходники и уже собранные бинари дебиана — это же не ванилька, и могут быть заточены друг на друга. вобщем это всё — сомнительное предприятие, на мой взгляд.. зае..ся поддерживать получающийся и растущий зоопарк.

источник

OpenSceneGraph: сборка из исходников и Hello World

OpenSceneGraph (далее OSG) — открытый кроссплатформенный фреймворк, написанный на C++ и представляющий собой графический движок, предоставляющий программисту объектный интерфейс к OpenGL. В нашей стране этот движок не особенно популярен, даже на Хабре я видел только одну более-менее приличную публикацию о нем. OSG применяется за рубежом много где, например он является основой для свободного авиасимулятора FlightGear, существует открытая реализация игры Morrowind, называемая OpenMW разработка которой так же перенесена на OSG с движка Ogre. Русскоязычной документации по нему исчезающе мало, а среди англоязычной можно отметить лишь серию книг от разработчиков: OpenSceneGraph 3.0. Beginner’s Guide и OpenSceneGraph 3. Cookbook.

Тем не менее, движок достаточно интересен по следующим причинам:

  1. Открытая кроссплатформенная реализация на C++.
  2. Модульная архитектура.
  3. Расширяемость за счет встроенной системы плагинов.
  4. Возможность многопоточной обработки графических данных и встроенный инструментарий для её реализации
  5. Управление динамической памятью через механизм умных указателей

Думаю, что читателям Хабра будет интересно более подробно ознакомится с этим проектом. Не лишним будет и пополнение русскоязычной базы знаний по OSG. Все материалы, которые будут публиковаться мной по данной теме основаны на книге OpenSceneGraph 3.0. Beginner’s Guide, но являются не её переводом, а скорее творческой переработкой изложенного там материала. Если вам интересна данная тема, прошу под кат

Единственным верным способом получить самую свежую версию OSG на своей машине — собрать библиотеку из исходных текстов. Существующий бинарный инсталлятор для Windows ориентируется на компилятор MS Visual C++. Мне же, для своих проектов необходимо использование компилятора GCC, вернее его варианта MinGW32, входящего в поставку средств разработки фреймворка Qt. Таким образом нам понадобится:

  1. Установленный и настроенный фреймворк Qt с компилятором MinGW32 версии 5.3 и IDE QtCreator
  2. Клиент Git для Windows
  3. Утилита сmake для Windows

Предполагается, что читатель знаком с IDE QtCreator и системой сборки qmake, используемой в проектах Qt. Кроме того, предполагается, что читатель владеет основами использования системы контроля версий Git и имеет ненулевые навыки в программировании в принципе.

1. Получение исходных текстов OpenSceneGraph

Создаем на своем жестком диске каталог, где будем производить сборку OSG, например по пути D:\OSG

Перейдем в этот каталог и стянем туда исходники с официального репозитория OSG на Github

Длительность процесса скачивания зависит от того, насколько широк ваш канал доступа в Интернет. Рано или поздно мы получим у себя локальную копию репозитория OSG.

Скачав исходники создадим рядом каталог build-win32-debug

В этом каталоге мы будем осуществлять сборку отладочного комплекта OSG. Но прежде

2. Настройка cmake

Для корректной работы cmake нам следует отредактировать файл путь-установки-cmake\share\cmake-3.13\Modules\CMakeMinGWFindMake.cmake. По-умолчанию он выглядит так

Закоментируем в нем несколько строк, дабы утилита не пыталась искать в нашей системе юниксовый шелл, и не найдя, завершалась с ошибкой

3. Сборка и установка отладочной и релизной версий движка

Теперь запускаем командный интерпретатор cmd, ярлык на который находится по пути Пуск->Программы->Qt->Qt 5.11.2->Qt 5.11.2 for Desktop (MinGW 5.3.0 32bit)

Запущенный сеанс командной строки настраивает всё окружение, необходимое для работы средств сборки mingw32. Переходим в каталог с исходниками OSG

Разберем смысл параметров подробнее:

  • -G «MinGW Makefiles» — указывает, что необходимо сгенерировать Makefile для утилиты mingw32-make
  • -DCMAKE_INSTALL_PREFIX=E:\Apps\OSG — устанавливаем путь, по которому будет установлен OSG
  • -DCMAKE_BUILD_TYPE=DEBUG — указывает, что следует собирать отладочную версию движка.

Выполнение команды проверяет готовность окружения для сборки, генерирует сценарий сборки и следующий выхлоп

говорит нам о том, что можно приступать к сборке. Даем команду

можно, как в моем примере, указать число потоков сборки, если у вас многоядерный процессор (ключ -j). Начнется процесс сборки, занимающий на моем компьютере около восьми минут

По окончании сборки устанавливаем библиотеку

после выполнения команды обнаруживаем библиотеку установленной по заранее заданному нами пути

Теперь соберем релизную версию движка, создав другой каталог сборки

4. Настройка переменных окружения

Расположение библиотек OSG после инсталляции может быть любым — определяется это пожеланиями конкретного пользователя и его возможностями для размещения файлов на компьютере. При этом, при настройке конкретного проекта, использующего данные библиотеке требует стремится к некой унификации, абстрагируясь от конкретного расположения библиотек.

Создадим несколько системных переменных окружения, указывающих пути к библиотекам, заголовочным файлам и плагинам OSG. В приведенном мной примере это будет выглядеть так

Необходимо создать переменные, имена которых обведены на скриншоте красным. После создания переменных, для того, чтобы они были видны средствами разработки, в частности QtCreator-ом нужно как минимум перелогинится в системе (выйти и зайти от имени текущего пользователя) или, возможно, перезагрузить систему (это же Windows!)

После этого процедуру установки OSG на наш компьютер можно считать оконченной.

5. Пишем Hello World в QtCreator

Знакомство с графическим движком OpenSceneGraph начнем с простейшего примера, как это обычно принято в программировании с некоего «Hello world!».

Прежде чем писать какой-либо код, настроим наш проект для системы сборки qmake, которую мы будем использовать на протяжении всего цикла статей. В интересующем нас месте файловой системы создадим следующую структуру каталогов

В каталоге hello создадим файл hello.pro следующего содержания

Разберем эти письме подробнее

Переменные задают шаблон проекта (app — приложение), имя исполняемого файла (hello) и каталог, куда исполняемый файл помещается после сборки.

В зависимости от ОС, где собирается проект, определяем переменные, указывающие пути к каталогам библиотек и заголовочных файлов OSG. Вот тут-то нам и пригодились переменные окружения OSG_BIN_PATH и OSG_INCLUDE_PATH — теперь неважно, где установлена библиотека OSG. Любой желающий работать с этим проектом на своем компьютере просто пропишет соответствующие переменные окружения в своей системе, не редактируя сценарий сборки.

Пишем сценарий для сборки в unix-подобных ОС

Здесь мы настраиваем имя исполняемого файла и указываем библиотеки, которые следует компоновать с нашей программой для различных вариантов сборки: как отладочной так и релизной. Отладочные библиотеки OSG имеют суффикс «d» после имени файла. Суффикс «_d» мы добавим так же и к исполняемому файлу проекта, дабы отличать отладочный вариант от релизного.

Ну и наконец определяем пути поиска заголовочных файлов и файлы, включаемые в дерево проекта. Создаем в каталоге include/ пустой файл main.h, а в кталоге src/ — файл main.cpp. Открываем этот проект в QtCreator и настраиваем его так, как показано на скриншоте

После открытия проекта увидим следующую картину

Напишем такой код в файле main.h

Далее реализуем основное тело программы в файле main.cpp

Файл с моделькой самолета необходимо скопировать в каталог data/. Этот файл, а так же многое из того, что будет использовано в данном цикле статей, можно скачать из репозитория OpenSceneGraph-Data

После компиляции и запуска мы получим что-то вроде этого

Первые две строчки нашего кода

помечают входные параметры функции main() как неиспользуемые, дабы избежать предупреждения компилятора. Далее создается корневая нода сцены, в качестве которой выступает модель самолета, загружаемая из файла cessna.osg

Потом создается экземпляр класса osgViewer::Viewer — так называемый «вьювер» — объект управляющий отображением сцены на экране. Вьюверу передаются данные сцены

и запускается цикл отрисовки сцены

В этом простейшем коде уже содержится ряд базовых концепций, используемых в OSG. Но разговор о них пойдет чуть попозже.

Заключение

Редакторский дайджест

Присылаем лучшие статьи раз в месяц

Скоро на этот адрес придет письмо. Подтвердите подписку, если всё в силе.

Похожие публикации

OpenSceneGraph: Основы работы с текстурами

OpenSceneGraph: Инкапсуляция машины состояний OpenGL

OpenSceneGraph: Групповые узлы, узлы трансформации и узлы-переключатели

Вакансии

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Комментарии 15

Прописывать переменные окружения системы — это из оф мануала такой совет? Выглядит… вообще не очень.
Так же есть легкое пожелание по поводу QMake. Qt официально объявили что главной системой сборки будет CMake. Поэтому крайне желательно современные мануалы адаптировать под него (стандарт де-факто будет сильно грубо сказать?)
Не потому что qmake фу (хотя я бы мог и так сказать), просто подключение внешних таких зависимостей имхо через cmake удобнее и проще чем через qmake. По моему лишь опыту.

(void) argc;
(void) argv;

use [[maybe__unused]], Luke.

#ifndef MAIN_H

я понимаю есть пуристы, которые набегут и скажут «в стандарте нет никаких ваших #pragma», но лично я их чаяних не разделяю. Если ты не пишешь код который должен работать на 98 платформах, вряд ли стоит отказываться от удобной «#pragma once»

Далее… немного о полезности самой статьи.
Я сомневаюсь что на Хабре найдется много программистов, пишущих на С++, которые не смогут самостоятельно собрать cmake проект. Если никаких нюансов вроде «надо обязательно задать опцию дин. рантайма, иначе нихрена не соберется», то и смысла в статье немного. (разве что ну оооочень начинающим).

Ну и по итогу вся статья в выжимке — сокращается до hello world’a, без каких-то побуждений, что можно делать дальше. Стартовым толчком, на мой взгляд, она служить не может.

Все вышесказанное это только взгляд «как это ощущается» и точно не унижение достоинств автора.

вот пример на мой взгляд ДЕЙСТВИТЕЛЬНО хорошего Hello World:
habr.com/company/newprolab/blog/328422

я понимаю есть пуристы, которые набегут и скажут «в стандарте нет никаких ваших #pragma»

Вот из любопытства: на каких платформах, как вы полагаете, читатели данного блога будут компилировать данный проект? Вот я буквально прошу список. Чтобы затем из него вычесть платформы, где эта директива поддерживается. Ну разве что C++ Builder 6 не тянет. Конечно, зависит от целевой аудитории статьи.

Прописывать переменные окружения системы — это из оф мануала такой совет? Выглядит… вообще не очень

В win вообще многие вещи «не очень». Ваши предложения по этому поводу?

Qt официально объявили что главной системой сборки будет CMake

Будет, не значит есть. А что, QtCreator уже поддерживает cmake на уровне добавления файлов в проект? Можно создать новый проект, использующий в качестве системы сборки cmake? Вот когда будет, тогда и поговорим об этом

Стартовым толчком, на мой взгляд, она служить не может

В win вообще многие вещи «не очень». Ваши предложения по этому поводу?

Обычно все зависимости передаются скрипту конфигурирования в качестве параметров.
1. CMD: в случае autotools/cmake — это параметры/дефайны командной строки. в случае QBS — сеттеры для qml-объектов.
2. GUI, QtC: в случае cmake — есть настройка параметров cmake через редактирование (если они помечены как set… CACHE или option), либо через добавление через GUI. Наряду, кстати с переменными среды. В случае QtC/qbs, это тоже задается через вкладку сборки.
3. Qtc. Если лень в каждую конфигурацию их прописывать, их можно прописать в настройки тулчейна (опять же работает для cmake/qbs) а для QMake — создать отдельный mkspec где нафигачить все переменные которые вам нужны и легко и непринужденно так же указать в kit-е.
4. тот же qtc, в исключительных случаях можно поправить переменные среды (!) во вкладке сборки проекта (все типы систем сборки). Это если ничего не помогло
про другие IDE тоже могу рассказать. Но нигде что-то не встречал я рекомендации «давайте прописывать глобально в системе». Простите, а если я вот хочу две версии мажорных OSG параллельно отлаживать? 2 набора переменных создавать? Постоянно там значения крутить?

Так что я не согласен с вашим выпадом мол на win все такое убогое.

На ваш взгляд не может, а на чей-нибудь другой взгляд — вполне

Ну вот я специально и вставляю оборот, что на мой взгляд, я свое мнение не только высказываю, но и аргументирую. Я же не прошу автора идти совершать соударения со стенами и удалять статью? По-моему вы в этом вопрос слишком болезненно восприняли критику. Кому-то будет полезно — хорошо. Если будут еще публикации — тоже замечательно.

Про CMake и Qtc — не впервой встречаю эту мантру) Тут согласен, что объективной грани нет. Я просто лично не сталкивался с разработчиками, которые пользовались более чем одной системой конфигурирования и при этом признаются что на qmake им писать нравится.
Но!) Хочу с вами поделиться личным опытои: имею множество проектов на CMake, как на работе, так и для личных нужд. При этом не испытываю особых сложностей через добавление в проект файлов с помощью шаблонов (Ctrl+N, Add C++ Class). Да, есть мелкое неудобство что пункт задизаблен в контекстном меню директории проекта. Но это пожалуй все. Открыт у меня какой-то файл, в директории project/foo/bar, нажимаю ctrl+N, выбираю шаблон, он добавляется сразу в foo/bar.
После этого вызываю run cmake (он у меня на хоткей забинден), поэтому сказать что прям IDE заставляет меня страдать — не могу (все это занимает считанные секунды).
Да, люди имеют проекты в которых перечислены файлы, но даже в вашем примере это не так — используется матчинг файлов через $$files. Собственно, для проектов в которых нет глоббинга файлов в любом виде — мой рецепт не поможет =)

источник

Читайте также:  Установка дефлекторов диаметром патрубка 280 мм

Добавить комментарий