Сегодня вашему вниманию предлагается статья Cosm’а о том, как собрать и настроить среду разработки Code::Blocks под FreeBSD.
В этой статье я попытаюсь вам объяснить как ставить Code::Blocks в FreeBSD. Code::Blocks это кросплатформенная IDE построена с помощью wxWidgets. В моем случае установка проводилась на FreeBSD-7.0-Release-i386.
Сначала вам нужно убедится что в вашей системе присутствуют пакеты: autoconf, automake>=1.9, libtool. Все эти пакеты присутствуют на дисках с дистрибутивом системы, и если вы их не установили во время установки FreeBSD, то самое время это сделать.
ВНИМАНИЕ!!! версия automake должна быть действительно выше 1.9, так как расширеные плагины Code::Blocks не компилируются на старых автомейках. Проверить версию можно введя в консоле: automake –version. Если во время установки у вас вылетает ошибка : @MKDIR_P@: unknown command
, то проблема именно в ней.
Также требуется пакет zip. Этот пакет не поставляется с дистрибутивом, но он есть на официальном ftp сервере. Установить его можно введя
pkg_add -r zip
или же
cd /usr/ports/archivers/zip/ && make install clean
Это все что требуется от системы для компиляции. Далее нам потребуются исходные коды wxWidgets и Code::Blocks. wxWidgets нам надо версия GTK+, она же wxGTK, качается здесь http://wxwidgets.org/downloads/. На момент написания статьи последней версией была 2.8.7. Исходники Code::Blocks мы также берем с оффициального сайта. На даный момент выпущен релиз за февраль 2008 года, он же 8.02. Качается здесь http://www.codeblocks.org/downloads. Распаковуем оба архива куда больше всего хочется. Я распаковал в /usr/ports/devel
, так как там их проще всего найти, когда вам надо будет удалять все что мы с вами сейчас будем ставить 🙂
Сначала мы будем компилировать wxWidgets. Так как цель у нас сегодня стоит поставить Code::Blocks, а в мануале по компиляции IDE пишут, что для компиляции нужна monolitic chared библиотека wxWidgets, то библиотеку строить мы будем такую как нас просят. wxGTK по у молчанию компилируется shared и использует GTK2, единственное что нам нужно, это добавить в конфигурацию монолитность и, так как мы с вами бывает пишем программы не только на английском, то будем компилировать юникод версию. Компиляция и установка библиотеки не вызывает никаких проблем. wxGTK сама себя копирует куда надо и сама создает системную переменную пути к библиотеке. Все что нам нужно сделать это зайти в корневой каталог с кодом wxWidgets (в моем случае в /usr/ports/devel/wxGTK-2.8.7
) и выполнить конфигурацию и установку. Все это делается в пять строчек.
$ cd /usr/ports/devel/wxGTK-2.8.7 # тут ваш каталог $ ./configure --enable-monolithic --enable-unicode # хотим монолитную юникод библиотеку $ make # компилируем $ make install # инсталируем $ make clean # чистим object файлы компиляции
После того как опять появляется приглашение ввода строки wxWidgets уже скомпилирован и присутствует в нужном месте. Теперь можно взятся за Code::Blocks. Разработчики среды решили разделить её установку на 2(две) части. Получилось так, что можно ставить КодБлоки с базовым набором плагинов (Core Plugins) и с расширеным набором плагинов (Contrib Plugins). По умолчанию среда компилируется с базовым набором плагинов. Этот набор включает в себя Autosave, Class Wizard, Code Completition и еще много полезных вещей, однако много полезных плагинов ставится в так называемом “расширеном” наборе. Весь список можно посмотреть здесь.
Базовая компиляция проходит без проблем. Я не буду на ней останавливатся. Понравилось то, что Code::Blocks сама добавляет себя в гномовскую менюшку в подменю “Programming”. Что бы скомпилировать IDE с базовой конфигурацией, заходим в каталог с исходным кодом выполняем ./configure
, а затем make install clean
. Можно идти пить чай, когда вернетесь у вас уже будет стоять Code::Blocks.
На компиляции с расширеными плагинами хотелось бы остановится поподробней. Именно здесь возникает проблема с @MKDIR_P@
. Дело в том, что в старых версиях automake использовалась другая нотация создания каталога при установке приложений. В новых же плагинах Code::Blocks разработчики видимо не думали, что кто-то будет пытатся компилировать со старым автомейком. Поэтому при установке важно пользоватся automake версии новее 1.9.
На http://wiki.codeblocks.org есть список плагинов, которые являются дополнительными (contribute). Для их установки нужно при конфигурации указать список нужных плагинов: --with-contrib-plugins=AutoVersioning,BrowseTracker,byogames
…., либо указать, что требуются все плагины: --with-contrib-plugins=all
. Особый интерес у меня был к плагинам C::B Games и wxSmith, но я решил не мелочится и указал все. Все действия должны выглядеть приблизительно так:
$ cd /usr/ports/devel/CodeBlocks-8.02 # ваш каталог с исходниками $ ./configure --with-contrib-plugins=all # все расширеные плагины $ make # компилируем $ make install # инсталируем $ make clean # чистим
Форма написания названий плагинов при выборочной установке видимо скрывается разработчиками от вражеских разведчиков, но мне все таки удалось достать эту информацию. А пишутся они вот так AutoVersioning, BrowseTracker, byogames, cbkoders, codesnippets, codestat, dragscroll, envvars, help, keybinder, libfinder, profiler, regex, exporter, symtab, wxsmith.
Вот и все. Если все было сделано правильно, то мы получаем удобную среду разработки под одну из самый стабильных операционных систем современности. Как доказательство представлен скриншот с рабочей средой, рабочей wxWidgets и рабочим wxSmith. Статья не претендует на универсальность или уникальность. Пользуясь случаем хочу выразить благодарность разработчикам Code::Blocks и wxWidgets за то что они это разрабатывают.
P.S. Если вам не надо уникальная компиляция wxWidgets, на оффициальном ftp сервере FreeBSD есть прекомпилированые пакеты с библиотекой. На момент написания статьи самая свежая версия на сервере 2.8.5, а установить можно вот так:
To install the port: cd /usr/ports/x11-toolkits/wxgtk28 && make install clean
To add the package: pkg_add -r wxgtk2
The конец. 🙂
Введение Уже долгое время не пишу статьи о разработке, хотя сам процесс написания мне очень…
I can see that there is still a lot of topics at wxWidgets forums related…
I've just published the source code of wxToolBox component and a couple of sample apps at…
Microsoft released their Kinect SDK several days ago. So, for those wxWidgets developers who are…
JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to…
Вдохновленнный читаемой нынче книгой My Job Went to India: 52 Ways to Save Your Job…