вторник, 23 июня 2009 г.

Установка Code::Blocks (Nightly builds) в Windows

Несмотря на наличие на официальном сайте среды Code::Blocks полноценных инсталляторов для множества платформ, разработчики не радуют пользователей регулярностью их обновлений. Интервал между двумя официальными релизами (версией 8.02 и предыдущей) был более 2-х лет. :) Однако, все это время среда разработки продолжала развиваться и обрастать новыми возможностями.

UPD 9.01.2010: Вставил скриншоты которые валялись на компе уже очень давно :).

Очевидно, у команды разработчиков Code::Blocks, просто, нет возможности часто подготавливать полноценные релизы.. Это не удивительно, если учесть то, что разработка ведется энтузиастами в свободное от основной работы (т.е. зарабатывания денег) время.
К сожалению, развитие программы плохо заметно если пробегать официальный сайт http://www.codeblocks.org бегло, т.е. ограничиться посещением страницы с описанием и сразу перейти на страницу загрузки с версией не первой свежести.. Вполне возможно, именно первое знакомство со старыми версиями и отпугивает многих потенциальных пользователей, от того чтобы начать использовать эту среду. Но разработка не стоит на месте и прогресс можно наблюдать, просматривая списки изменений, на форуме http://forums.codeblocks.org/ в разделе Nightly builds, где регулярно выкладываются свежие билды Code::Blocks под Windows на основе последних версий исходников из репозитория. Существует так же неофициальный debian-репозиторий c ночными сборками http://apt.jenslody.de, который можно использовать для установки последних версий в Debian и Ubuntu. Кроме того для самых отчаянных и нетерпеливых всегда существует возможность самостоятельно собрать Code::Blocks из исходников. Для получения последних версий исходников всегда можно обратиться к svn-репозиторию проекта: http://svn.berlios.de/svnroot/repos/codeblocks/trunk
Итак, если Вас не устраивает версия Code::Blocks представленная в секции загрузки на официальном сайте, то рекомендую попробовать последнюю ночную сборку, предварительно установив MinGW. Где искать MinGW, я уже писал ранее.
Смело идем на форум http://forums.codeblocks.org/ в раздел Nightly builds и заходим в последний созданный топик сообщающий о выходе билда.
Например: «The 01 June 2009 build (5616) is out». Из названия следует что успешно вышел билд за 1 июня на основе ревизии 5616 из официального svn-репозитория проекта.
В первом посте топика видим несколько ссылок: ссылка на rss с новостями, инструкцию по работе с ночными сборками и 3 ссылки на файлы архивов в формате 7z. Если Вы впервые качаете ночную сборку, то нужно обязательно загрузить все три файла.
В моем случае это:
wxmsw28u_gcc_cb_wx2810.7z - библиотека wxWidgets специальная сборка для Code::Blocks. Меняется редко если для предыдущей ночной сборки вы уже скачали этот файл, то второй раз качать его не нужно. :)
mingwm10_gcc421.7z - какая то служебная библиотека из состава MinGW, нужна для dll c wxWidgets. :) Меняется еще реже.
CB_20090601_rev5616_win32.7z - свежий билд Code::Blocks. Меняется каждую ночную сборку.. ;)

Создадим папку в которой будет жить среда Code::Blocks и распакуем в нее содержимое всех трех архивов. По старой привычке у меня эта папка имеет незамысловатый путь «c:\codeblocks». ;) Установите MinGW если вы этого еще не сделали.

Запустите codeblocks.exe. При первом запуске среда отобразить диалог со списком обнаруженных в системе компиляторов.



В моем случае Code::Blocks нашел установленный MinGW как GNU GCC Compiller и компилятор из состава Microsoft Visual Studio 2008 Express.
Я выбираю «GNU GCC Compiller», нажимаю «Set as default» и «OK», в дальнейшем MinGW будет использоваться по умолчанию.
Компилятор выбран и программа радостно откроет главное окно и диалог «Tip of the day». Закройте окно с советами (можете снять галочку, чтобы оно не выскакивало при старте программы), к нему всегда можно вернуться через главное меню в разделе «Help». Далее программа спросит хотите ли Вы ассоциировать Code::Blocks с файлами C/C++ (*.c, *.cpp, *.h), файлами проектов Code::Blocks (*.cbp, *.workspace) или даже c файлами проектов других сред разработки DevCPP и Visual Studio.



Я выбираю ассоциации с файлами C/C++ и файлами проектов Code::Blocks, это третья строчка. Нажимаем «OK» и среда уже практически готова к работе, осталось немного подстроить интерфейс под себя и проверить на тестовом проекте.



Закрываем окошко «Scripting console» и размещаем панели инструментов более компактно. Часть панели можно выборочно скрыть через меню «View->Tollbars»
Я размещаю панели в 3 строчки:
1 Строчка - панели Main (значки сохранения, открытия файлов и т.д.), IncrementalSearch и ThreadSearch.
2 строчка - панель CodeCompletion.
3 строчка - панели Compiller и Debugger.



Для проверки попробуем скомпилировать HelloWorld . :) Для этого создадим новый проект «File->New->Project». Откроется окно с выбором шаблонов проектов. Выберите «Console application» - откроется мастер создания проекта.





Первая страница мастера не представляет интереса. На второй нужно указать язык проекта C или C++. На третьей нужно указать название проекта и папку где он будет создан. На четвертой(последней) странице производится выбор компилятора для проекта и настройка папок куда будут складываться результирующие исполняемые и объектные файлы. Жмем Finish - проект создан. В окошке Managment появился новый проект, пока состоящий из одного файла main.cpp (или main.c).

Соберем проект, меню «Build->Build and run» или просто F9 (для компиляции, линковки и запуска проекта).

Если сборка пройдет неудачно или Code::Blocks не найдет MinGW, то в нижней части программы на владке Build log появится сообщение подсвеченное красным.
Например, если не найден MinGW:
-------------- Build: Release in test ---------------
Compiling: main.cpp
Execution of 'mingw32-g++.exe -Wall -fexceptions -O2 -c D:\dev\sandbox\test\main.cpp -o obj\Release\main.o' in 'D:\dev\sandbox\test' failed.
Nothing to be done.



Убедитесь что MinGW установлен. Если он установлен в папку отличную от «c:\mingw» и не определяются Code:Blocks автоматически, то зайдите в настройки компилятора «Settings->Compiler and Debugger..->Global compiler settings». В выпадающем списке «Select compiler» выберите «GNU GCC Compiler», перейдите на вкладку «Toolchain executables» и в поле «Compiler installation directory» укажите путь к MinGW.

Если сборка пройдет успешно Вы увидите перед собой окошко консоли с примерно таким текстом:
Hello world!
Process returned 0 (0x0) execution time : 0.093 s
Press any key to continue.





Это окошко принадлежит пускалке для консольных приложений «cb_console_runner.exe», которая замеряет время выполнения Вашей программы и, ожидая ввода с клавиатуры, не дает пропасть в небытие данным выведеным на консоль, избавляя от извращений типа «getchar()» в конце программы. :)

Ну вот и все, Code::Blocks - готов к работе. :)

На последок, порекомендую так же в настройках компилятора «Settings->Compiler and Debugger..->Global compiler settings» изменить формат лога компиляции и указать максимально количество процессов для параллельной компиляции файлов проекта (дает существенное ускорение компиляции больших проектов на многоядерных процессорах).
Для этого перейдем на вкладку «Other settings». Поставим галочку «Display build progress percentage in log» (это будет отображать в логе компиляции прогресс сборки проекта в процентах). Иногда может быть полезным посмотреть полную информацию о параметрах вызова компилятора, для этого может пригодится установить параметр «Compiler logging» в значение «Full command line» . Изменим число в поле с названием «Number processes for prallel builds» на число равное числу ядер в вашей системе. В принципе это число может быть и больше. Например у меня сборка одного проекта на двухядерной системе в 4 процесса происходила слегка быстрее чем в 2 процесса. Но не увлекайтесь, если поставить совсем неадекватное число то, получите обратный эффект - уменьшение скорости.

На сегодня все. Удачной компиляции! :)

Читать дальше......

пятница, 19 июня 2009 г.

Установка MinGW

MinGW - это нативный порт компиляторов GCC на платформу Windows. На сегодняшний день является наиболее «вменяемой» бесплатной альтернативной коммерческим компиляторам. Повсеместно применяется для разработки кросс-платформенных приложений. Например, именно MinGW используется в качестве компилятора С++ под Windows в средах разработки Qt Creator, Code::Blocks (в качестве основного), NetBeans и Eclipse.

Ниже я перечислю основные особенности MinGW и опишу несколько способов для его установки.


Для начала перечислю важные (на мой взгляд) особенности MinGW. ;)

Основные достоинства:
+ полностью бесплатен;
+ генерирует хороший быстрый код;
+ непрерывно развивается;
+ удобство и компактность установки.

Основные недостатки:
- Относительно медленная компиляция C++ кода;
- Относительно медленная линковка результирующего файла;
- Несовместимость с, содержащими C++ классы, *.lib и *.dll файлами созданными в MS Visual Studio. По этой причине MinGW и PhysX SDK не дружат друг с другом..

Для того чтобы заполучить на свой компьютер готовый к работе MinGW, существует несколько способов.

Способ 1- использовать автоматический установщик с официального сайта MinGW.
Установщик официальной версии MinGW следует искать на сайте http://mingw.org/
На момент написания этих строк файл установщика называется «MinGW-5.1.4.exe» и его можно загрузить со страницы загрузки.
Установщик состоит из одного файла «MinGW-5.1.4.exe» и имеет мизерный разер (~140 KB). Непосредственно при установке он выкачивает дополнительные архивы с компонентами GCC. По умолчанию MinGW ставиться в папку «c:\mingw» Перед установкой рекомендую поместить «MinGW-5.1.4.exe» в отдельную пустую папку, т.к. все выкаченные архивы кэшируются в папке откуда запущена установка. Если ничего не удалять, то можно все это добро скопировать и устанавливать без интернета, запуская все тот же «MinGW-5.1.4.exe».

Следует отметить, что при установке через «MinGW-5.1.4.exe», можно выбрать версию Mingw (Previous, Current, Candidate), инсталлятор регистрирует установку в системе и предоставляет возможность обновления и удаления текущей установки.
Если MinGW ставится для работы с Code::Blocks, то при установке рекомендую выбрать версию «Candidate», а среди устанавливаемых компонентов должны быть обязательно отмечены «MinGW base tools», «g++ compiller» и «MinGW Make».

Способ 2 - Выкачать нужные пакеты с http://mingw.org вручную или воспользоваться архивами полученными при установки первым способом.
Приведу список файлов которые скачивает официальный установщик MinGW для версии Candidate:

gdb-6.8-mingw-3.tar.bz2
mingw32-make-3.81-2.tar.gz
binutils-2.18.50-20080109-2.tar.gz
gcc-g++-3.4.5-20060117-3.tar.gz
w32api-3.13-mingw32-dev.tar.gz
mingwrt-3.15.2-mingw32-dev.tar.gz
gcc-core-3.4.5-20060117-3.tar.gz

Не нужно даже прибегать к запуску инсталлятора, достаточно просто разархивировать все архивы в одну папку. Для распаковки можно воспользоваться замечательным бесплатным архиватором 7-zip (http://www.7-zip.org/).

И еще, отладчик gdb (который будет очень кстати при работе в среде Code::Blocks) придется качать отдельно в секции загрузки http://mingw.org

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

Примером может служить пакет MinGW С++ Toolbox предлагаемый (в связке с Code::Blocks ;) в качестве альтернативного инструментария для сборки и работы с движком рендеринга Ogre. Никаких специфических ограничений и заточек под Ogre в нем нет, и я давно использовал его просто как удобный «все-в-одном» инсталлятор MinGW. Все было замечательно. :) Но однажды случилось страшное.. В очередной раз решив собрать свежий Ogre, потыкать примеры и заставить себя чего-нибудь на нем слепить, я обнаружил что исходники относительно недавно вышедшего Ogre 1.6.2 у меня просто не собираются этим пакетом инструментов (требуется обновление w32api до версии 3.13). К слову, установка MinGW версии Candidate первым способом позволила решить эту проблему. ;) Хотя данный пакет в целом не плох и ранее всегда справлялся со своими задачами. Если требуется компактный инсталлятор со стабильным MinGW для общих задач, то можно со спокойной душой качать MinGW_Toolbox_Setup_wr1 c ogre3d.org. Будем наедятся что актуальная версия этого пакета появится в скором времени.

Если поискать, то в интернете, можно найти и другие сборки MinGW от энтузиастов. Как правило это просто само-распаковывающихся архивы.

Совсем недавно мне попалась альтернативная сборка последних версий GCC/Mingw32 - TDM-MinGW http://www.tdragon.net/recentgcc/
Она является неофициальной и, как заявляют разработчики, предназначена для экспериментальных целей. Но судя по всему ее можно использовать, если она не вызывает проблем в конкретном проекте. :) Я ее еще не испытывал на сборке крупных вещей, но со временем постараюсь это исправить.
Сборка имеет полноценный инсталлятор. При установки можно выбрать между стабильными и экспериментальными вариантами исполнительных фалов MinGW. Включает в себя все необходимое для сборки и отладки С++ проектов (make,gcc,gdb).
Из плюсов этой сборки несомненным является ее регулярное обновление.
Качать Bundled Installer. Размер около 26 MB.

Способ 4 - скачать среду разработки со встроенным MinGW. :)
Один самый ленивый способ, которым я пользовался когда-то давно. Я ставил Code::Blocks с MinGW в комплекте и накатывал ночные сборки поверх.
Из плюсов можно отметить что отпадает вопрос настройки среды разработки. :) Но в тоже время если поставить Qt Creator или старину wxDevCpp со встроенным MinGW и потом настроить использование его в Code::Blocks получится путаница и последующие лишние телодвижения при удалении и обновлении вышеупомянутых программ. Если в скачиваемой программе MinGW идет в комплекте и никому не мешает, то это прекрасно. Но для остальных программ лучше использовать отдельную инсталляцию MinGW в папку «c:\mingw», т.к. там они его буду искать в первую очередь.

Думаю на сегодня хватит про MinGW.

В ближайшее время постараюсь (как и обещал ранее) написать про установку ночных сборок Code::Blocks и их первичную настройку.

Читать дальше......

четверг, 18 июня 2009 г.

Релиз Jython 2.5

Наконец то Jython 2.5 разродился релизом. :)
Появился повод пощупать его поплотнее.

Качать: http://downloads.sourceforge.net/jython/jython_installer-2.5.0.jar

Читать дальше......

вторник, 16 июня 2009 г.

Cреда разработки Code::Blocks

Несколько лет назад я случайно попробовал Code::Blocks и он меня «зацепил». В 20 мегабайтах инсталлятора скрывалась полноценная среда программирования готовая к работе сразу после минутной установки. Ее можно было быстро и без геморроя развернуть на любой подручной машине, в отличие от C++ Builder 6, который я использовал, и MS Visual Studio, на который я заглядывался ,но так и не перелез из-за ненадобности. С тех пор много воды утекло но для своих С++ проектов и экспериментов я стараюсь использовать именно Code::Blocks.

Не претендуя на полноту и оригинальность, я все же расскажу немного об этом добротном инструменте. ;)


Code::Blocks - это интегрированная кроссплатформенная среда разработки для языков С, C++ и D.
На мой взгляд, она хорошо подходит для изучения С/С++ и разработки относительно небольших проектов.

Перечислю главные, на мой взгляд, особенности программы:
+ Code::Blocks написан на С++ с использованием библиотеки wxWidgets, поэтому работает довольно шустро и кушает мало ресурсов системы (в отличие от Eclipse и Netbeans, написанных на Java).
+ Встроенный редактор кода базируется на компоненте Scintilla и предлагает подсветку синтаксиса для десятка языков с возможностью свертывания фрагментов кода. К слову сказать, Scintilla так же используется в редакторах SciTE и Notepad++.
+ Возможность экспорта исходника (с подсветкой синтаксиса) в html, odt, pdf и rtf.
+ Кроссплатформенность. Среда прекрасно работает в Windows и Linux.
+ Хорошо поддерживает разработку программ с использованием wxWidgets.
+ Поддержка множества компиляторов. Кроме GСС/MinGW поддерживаются и компиляторы от Microsoft, Borland, Intel, Digital Mars. Но на мой взгляд, GСС/MinGW интегрированы в среду наиболее плотно и лучше использовать именно их.
+ Интегрированный отладчик. Вполне терпимый.
+ Автодополнение кода. Вполне терпимое. :)
+ Удобные функции поиска по проекту.
+ Богатые возможности по настройке проекта.
+ Простой и удобный интерфейс. Хотя местами возможно деревянный. :)
+ Поддержка плагинов. Можно писать свои модули расширений. Например новые типы редакторов.Множество стандартных плагинов облегчающих жизнь:
* Source code formatter (Astyle) – расставляет отступы в коде и приводит к выбранному стилю. Удобно если вам попался чужой код форматирование которого съехало, либо его изначально не было. ;)
* wxSmith – визуальный редактор форм для проектов на базе wxWidgets.
* DragScroll – позволяет зажав в редакторе кода правую кнопку мыши прокручивать код.
* Profiler, Devpak installer, HexEditor и д.р.
+ Code::Blocks достаточно легко можно собрать из исходников. Это может понадобится если установить плагин от сторонних разработчиков (Например: плагин для поддержки Svn или разработка на Python).
+ Постоянное развитие проекта, регулярно появляются новые фичи. Ночные сборки под Windows (Nights Builds) c последними исправлениями ошибок и новыми возможностями выходят регулярно не реже раза в месяц, а иногда и каждый день. :)

Неплохо для Проекта развивающегося на голом энтузиазме? :)

В Code::Blocks достаточно комфортно можно изучать чужие исходники, активно используя функцию поиска упоминаний выделенного класса или просто текста.
Ночная сборка занимает около 7 мегабайт в архиве, но для нее необходимо устанавливать MinGW отдельно (плюс 19 мегабайт).
В распакованном виде Code::Blocks и MinGW занимают около 100 мегабайт.
Можно смело ставить на нетбук. :)

В следующем посте постараюсь рассказать об установке и настройке ночных сборок под Windows (Nights Builds).

Интересующимся другими бесплатными средами кроссплатформенной разработки на С++ рекомендую посмотреть:
Qt Creator - Хорошая среда для разработки на Qt (написано на C++)
Eclipse C/C++ Development Tooling - CDT - Среда на базе Eclipse (написано на Java).
NetBeans - Среда в основном для Java но имеется поддержка C++ (написано на Java)/

Что еще посмотреть:
http://www.codeblocks.org/downloads – страница загрузки
http://ru.wikipedia.org/wiki/Code::Blocks
http://alenacpp.blogspot.com/2005/10/codeblocks-studio.html
http://wxwidgets.info/tag/codeblocks/

Читать дальше......

Проверка связи

Доброго времени суток!
Это мой первый пост в моем первом блоге. :)
Блог будет посвящен различным интересующим меня штукам в основном из области прогаммирования и прочего IT..

Читать дальше......