четверг, октября 06, 2005

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

Code::Blocks - это кроссплатформенная, бесплатная, Open Source среда разработки. В ней есть многие приятные вещи, которые современная среда разработки обязана уметь. Class browser, code completion, фолдинг (folding).

Есть импорт воркспейсов Microsoft Visual Studio и проектов Dev-C++.
Насколько мне известно, популярная среда разработки Dev-C++ умеет работать только с GCC-компиляторами. Так же как и у Code::Blocks у них есть версия с MinGW GCC, есть версия вообще без компилятора. Но к Code::Blocks еще можно подключать другие (не обязательно GCC) компиляторы через приятный интерфейс.

Причем для разных проектов можно подключить разные компиляторы, можно для одного и того же проекта попробовать различные компиляторы. Последнее должно быть особенно удобно для тех, кто разрабатывает open source проекты, которые просто обязаны компиляться всеми более-меннее распространенными компиляторами. Плюс переход на другой компилятор можно произвести очень быстро. Выбираешь в списке другой компилятор, работаешь с ним - не понравилось? Возвращаешь все обратно, настройки все сохранились. Никаких дополнительных сред разработки скачивать не надо, привыкать к ним не надо.
Список компиляторов, с которыми умеет работать Code::Blocks:
Code::Blocks позволяет держать разные настройки по умолчанию для разных компиляторов.

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

Если работа над Code::Blocks будет продолжаться в том же духе, он сможет составить весьма достойную конкуренцию Microsoft Visual Studio. Дело в том, что не так давно Microsoft выпустила Microsoft Visual C++ Toolkit 2003, который, в том числе, содержит консольную версию своего компилятора, которые они используют в Visual Studio .NET 2003 Professional. Плохо в нем то, что он - компилятор командной строки, сколь-нибудь большой проект таким образом разрабатывать сложно, все равно нужно какое-то средство разработки. И если раньше выбора особенного не было и приходилось работать с Visual Studio, то теперь есть Code::Blocks, появился выбор.
Но у меня с ним обнаружилась одна небольшая засада. Компилятор из тулкита не понимает пробелы в именах файлов и названиях директорий. Я же люблю все инсталлировать в директорию Program Files. Поскольку Microsoft утверждает, что это точь-точь тот же компилятор, что используется в Visual Studio .NET 2003 Professional, то, я думаю, что это среда Visual Studio заключает названия директорий в кавычки прозрачно для пользователя. Что-либо переделывать мне было лень, так что скомпилять я ничего так и не скомпиляла. В багтраке Code::Blocks есть бага по этому поводу, но когда они ее поправят и поправят ли, большой вопрос.

Еще мнение о Code::Blocks:
Code::Blocks Studio

Ссылки по теме:
Free Windows Editors
Dev-C++
Microsoft Visual C++ Toolkit 2003

Technorati tag:

40 комментариев:

  1. > Плохо в нем то, что он - компилятор
    > командной строки, сколь-нибудь большой
    > проект таким образом разрабатывать сложно

    Большие проекты как раз собираются в основном из командной строки (та же Mozilla). Обусловлено это тем, что именно в большом проекте надо не только код компилировать, но и запускать всякие препроцессоры и постобработчики, специфичные для проекта, поэтому зашить эту логику в make-файл и выполнять автоматически удобней, чем ходить по GUI и запускать программы в нужном порядке.

    Ну и не в последнюю очередь из-за того, что большие проекты частенько рулятся не вполне переносящими GUI хакерами :-).

    ОтветитьУдалить
  2. Анонимный7/10/05 08:43

    "Кроссплатформенная среда" звучит конечно круто. Но поддержаны только Linux и Windows. А как же, например, SunOS?!

    ОтветитьУдалить
  3. >А как же, например, SunOS?!
    Я думаю, можно скомпилять Code::Blocks и заставить его работать в связке с gcc. Народ в форуме пишет, что им удавалось его заставить работать на MacOS, на FreeBSD.
    Вообще Code::Blocks расширяемый, для этого используется система плагинов. Плагины используются в том числе для добавления поддержки новых компиляторов.

    ОтветитьУдалить
  4. Анонимный7/10/05 15:13

    Большие проекты как раз собираются в основном из командной строки (та же Mozilla).

    Неправда. Там используются automake и autoconfи еще некторое количество perl-скриптов. Или Вы думаете, что makefile'ы они вручную пишут?

    ОтветитьУдалить
  5. Это не я думаю. По-моему, разница между тем тем, что я написал - использование скриптовой билдовой среды вместо GUIшной - и тем, что вы из нее домыслии - название конкретных тулзов - очевидна. Думаю, также очевидно, что цель моего комментария заключалась не в том, чтобы показать, что я круто наизусть знаю, как компилируется Мозилла, а дополнить статью информацией, которую я посчитал нелишней.

    Знаете, не все комментарии пишутся из агрессивного буквоедства...

    ОтветитьУдалить
  6. Я запускал под Mac OS. Ничего сложного. Честно проще чем под Винду использовать MingW и Codeblocks.

    Билды здесь:
    http://developer.berlios.de/project/showfiles.php?group_id=5358

    ОтветитьУдалить
  7. Знаю что пост очень старый, но CodeBlocks проигрывает студии по удобству в разы :(

    ОтветитьУдалить
  8. sergey miryanov
    Какой билд кодблокса проигрывает какой версии студии и чем, и насколько вы считаете это смертельным?

    ОтветитьУдалить
  9. Евгений Железников
    Нет, ничего смертельного нет. Просто это тот случай когда действительное не соотносится с желаемым.

    Первым впечатлением было - как вообще в этой штуке можно писать?? Сначала не хватало smart tabs - имено это на 80% заставило написать комент. Затем я нашел smart tabs в настройках - стало легче, но если честно выглядит просто ужасно.

    Дальше - не возможность скрывать окна, как в студии - я конечно понимаю что это мои проблемы - но смотреть на код как из амбразуры не приятно.

    Дальше - не возможность смотреть отдельно ошибки и предупреждения.

    Дальше - ужасный красный цвет сообщений об ошибках, я не бывшая школьница чтобы меня ими пугать.

    Дальше - оригинальный способ сообщения об ошибках. Не скажу что это плохо или хорошо - но требует как миниум привыкания.

    До дебага я не дошел, т.к. пока мне проект отлаживать не приходиться.

    Как я уже сказал - ничего смертельного нет - но осадочек остался.

    Да, и если вы как то причастны к разработке продукта - то я не смог заставить работать source formating.

    Версия - 8.02 от 28 февраля 2008.

    ОтветитьУдалить
  10. sergey mirianov
    Первым впечатлением было - как вообще в этой штуке можно писать??

    Шутите или как?

    Сначала не хватало smart tabs - имено это на 80% заставило написать комент. Затем я нашел smart tabs в настройках - стало легче, но если честно выглядит просто ужасно.

    Smart tabs - что имеете ввиду? Я под этим понимаю сохранение количества табов в отступе от начала строки при переходе на следующую строку. Если правильно понял, не понимаю, как вы это не нашли сразу и в чем разница с VS (и какой, опять же - не работал с 2008, в 2005ой вроде как все так же, или вы о tomato's visual assist?)
    Настроить, что использовать - пробелы или таб - в настройках редактора.

    Дальше - не возможность скрывать окна, как в студии - я конечно понимаю что это мои проблемы - но смотреть на код как из амбразуры не приятно.

    F2 скрывает окно с закладками компилятора/дебаггера, вроде как есть шорткат и древо проекта скрывать, ну и как бы любое окно можно масштабировать, закрыть или переместить, включая вкладки, если что не устраивает и нужно расширить амбразуру.
    Или вам именно без autohide совсем никак?

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

    Что не так с сообщением об ошибках?

    Дальше - ужасный красный цвет сообщений об ошибках, я не бывшая школьница чтобы меня ими пугать.

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

    ОтветитьУдалить
  11. p.s. забыл:
    К разработке отношения не имею.

    Source formatter настраивается в settings - editor - source formatter

    ОтветитьУдалить
  12. Не smart tabs, а smart tab-switching, ошибся.

    Олдскульно-блокнотно-программистской приспособляемостью я переболел, спасибо.

    А выбираю я не шмотке в бутике, а среду в которой я буду проводить по 8+ часов в день и я хочу чтобы она была удобной и предсказуемой.

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

    ОтветитьУдалить
  13. Этот комментарий был удален автором.

    ОтветитьУдалить
  14. sergey mirianov
    "Удобная и предсказуемая" коррелируется с освоением и привыканием к особенностями (при желании как минимум полазить по настройкам, чтобы найти F2 и настройки source formatter, который вполне работает).

    Мне кажется странным, что вы ставите вопрос именно с "выбором среды для 8+ часов", сравнивая пофенечно с visual studio. Над vs много лет работает наемная армия, над кодблоксом - отряд повстанцев, надо ли сопоставлять человекочасы, вложенные средства и доводку юзабилити?

    Имхо, выбор может быть таким: или у вас есть средства на лицензию вижуалстудии (если по рабочим/нравственным/религиозным соображениям не подходит пиратка) или вам нужна хобби-среда/кроссплатформа и не устраивает eclipse. То есть то, что студия удобнее, мощнее и доработаннее напильником, как бы не обсуждается, у C::B team, в отличие от разрабов Blender или OpenOfficeOrg, нет постоянных спонсоров для оплачиваемого фуллтайм. Code::Blocks - "народный" проект, и в todo-листе много архитектурных вещей, среда все так же активно разрабатывается, как и полтора года назад, конкретные юзабилити-мелочи могут быть все еще не доведены.

    Ждете конструктива, начав с "проигрывает студии по удобству в разы" и "как вообще в этой штуке можно писать"?
    Спрашивайте конкретно - постараюсь ответить так же конкретно и без грубиянства. А пока получилось вот как-то так.

    ОтветитьУдалить
  15. sergey mirianov
    Будет лучше всего, если вы четко сформулируете, что не нравится - по пунктам с указанием, как было бы удобнее и лучше, и отпишитесь на форуме разработчиков, либо, если не хотите, пишите сюда (или digited(сбк)yandex.ru), и я отправлю. Code::Blocks - тот случай, когда user feedback нужен и работает.

    ОтветитьУдалить
  16. 2Евгений Железников:
    Ждете конструктива, начав с "проигрывает студии по удобству в разы" и "как вообще в этой штуке можно писать"?

    Сергей высказал своё личное мнение по удобству пользования Code:Blocks'ом. И это штука довольно субьективная. Так что спорить тут бесполезно. "На вкус, на цвет" как говорится...

    ОтветитьУдалить
  17. алёна
    я неправильно понял человека, уладили почтой.
    Попробую связаться с разработчиками по основным неустраивающим юзабилити-пунктам.

    ОтветитьУдалить
  18. Анонимный14/6/08 20:02

    Забавно читать Евгения Железникова, настоящий патриот Code::Blocks :)

    У меня проблема с пробелами, о которой говорила Алена. Я скачал Code::Blocks c MinGW, так он этот MinGW туда же куда Code::Blocks ставит, я установил в C:\Program Files\CodeBlocks\MinGW, а makefile wxWidgets'а с параметром clean не умеет работать с командами, в путях которых содержатся пробелы. Я захожу в C:\Program Files\wxWidgets-2.8.7\build\msw и пишу
    mingw32-make.exe -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1, а потом
    mingw32-make.exe -f makefile.gcc clean USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1
    и мне пишет:
    "C:/Program" не является внутренней или внешней
    командой, исполняемой программой или пакетным файлом.
    mingw32-make: *** [clean] Error 1
    кто-что знает по этому поводу помогите вернуть пространство на жестком диске :)

    ОтветитьУдалить
  19. Анонимный14/6/08 21:57

    Создал тестовое приложение на основе визарда wxWidgets + wxSmith, при комплияции опять выдает ошибку с пробелом :(
    -------------- Build: Debug in wxTest ---------------

    Compiling: wxTestApp.cpp
    Compiling: wxTestMain.cpp
    Compiling: resource.rc
    C:\Projects\wxTest\resource.rc:3:24: wx/msw/wx.rc: No such file or directory
    gcc: Files\wxWidgets-2.8.7\include: No such file or directory
    gcc: Files\wxWidgets-2.8.7\lib\gcc_dll\mswud: No such file or directory
    windres.exe: preprocessing failed.
    Process terminated with status 1 (0 minutes, 10 seconds)
    2 errors, 0 warnings

    ОтветитьУдалить
  20. Анонимный25/6/08 19:48

    Довольно давно пользуюсь CB, и помоему это замечательная среда разработки. Предпочла ее CodeWarrior, Dev-C++ и Anjuta... Для меня одним из основных доводов в пользу было то, что не приходится "пересаживаться" с одной среды на другую в windows и linux, версии CB для разных операционных систем мало чем отличаются. Вообще, наверное это для кого-то довольно спартанская среда, но лично мне после нее аналогичные продукты от microsoft кажутся слишком раздутыми и загроможденными, ведь большую часть предлагаемых там возможностей я не использую... Возможно, именно поэтому CB лично мне кажется более предсказуемым. И вообще, кому-то это тоже покажется странным, но я стараюсь пользоваться свободным софтом везде, где только это возможно.

    ОтветитьУдалить
  21. Попробовал эту IDE буквально час назад в связке с MinGW, впечатление очень хорошее. VC 2008 уже так достал своими тормозами, да и глюков в нем хватает (тот же cl стартанул только после танцев с бубном). Если и дальше Code::Blocks будет показывать себя так хорошо, полностью на него переберусь.

    ОтветитьУдалить
  22. Анонимный22/2/09 22:35

    У КодБлока появился конкурент, КодЛайт http://codelite.org/ первые впечатления очень и очень благоприятные.

    ОтветитьУдалить
  23. Анонимный16/4/09 17:58

    Вчера первый раз запустил под Windows 7. Выбрал Code::Blocks, так как есть желание попробывать написать простенькое кросс-платформенное приложение на wxWidgets, а Code::Blocks вроде как доступен на интересующих меня платформах (Win, Linux, MacOS). Впечатлениями делиться рано, после VS2008 пока привыкаю...

    ОтветитьУдалить
  24. Анонимный29/7/09 18:29

    буквально только что поставил Code::Blocks 8.02 на FreeBSD. очень доволен пока что (тьфу тьфу). смотрел на эту IDE эдак с год назад под фрихой -- падала.

    ОтветитьУдалить
  25. Рекомендую собирать Code::Blocks из репозитория - по сравнению с 8.02 там ОЧЕНЬ много улучшений и нововведений.
    Если собирать лень, то на форуме Code::Blocks есть ветка, в которую выкладывают "ночные сборки" для Linux, Windows, Mac OS X.

    ОтветитьУдалить
  26. Здраствуйте! Подскажите пожалуйста можно ли в C::B увидеть строку которой будет компилироваться мой target? Из-под Make все компилиреутся нормально (пробую компилить для wince компилятором arm-mingw32ce-g++), а вот в C::B компилится, но возникает зависимость исходника от LIBGCC-0.55.2.DLL хотя в опциях компилятора -fno-exceptions стоит. Как посмотреть строку компиляции? Хелп!

    ОтветитьУдалить
  27. Анонимный14/1/10 10:57

    Logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"

    ОтветитьУдалить
  28. Выдираю вот для себя этот Code::Blocks чтобы получить версию среды в Portable версии. Другим словами куда не кинь папку со средой чтобы всегда запускалась и позволяла удобно работать.

    Но пока не понял, где хранит конфигурацию свою ? Если в реестре, придется патчить место в котором она читает настройки из него.

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

    ОтветитьУдалить
  29. Анонимный10/3/10 23:17

    Здравствуйте!
    Возможна ли поддержка 866 кодировки в C::B? Если да, то каким образом настроить?

    ОтветитьУдалить
  30. Анонимный6/3/11 00:11

    К сожалению версия для MacOS X далека от стабильности, постоянно падает и невозможно работать. Я привык к Code::Blocks в линуксе и я пока не готов перенести все проекты в xCode

    ОтветитьУдалить
  31. Анонимный5/6/11 13:30

    Code::Blocks действительно очень удобный, особенно если учесть, что это опенсорс и бесплатно. Единственный его недостаток - отладчик. К сожалению некоторые вещи в нём сделаны неудобно (особенно просмотр переменных наводя мышью) и есть разные глюки. Ощущение, что у них не хватает людей на исправление недостатков.

    ОтветитьУдалить
  32. Анонимный4/1/12 13:18

    Добрый день.
    Есть такой вопросик по Code::Block
    Если использовать wxSmith, то при компиляции выдает ошибку :
    : wx/dialog.h: No such file or directory|

    Подскажите пожалуйста как ее исправить ?

    ОтветитьУдалить
  33. Анонимный19/1/12 20:16

    Я тоже сторонник независимого IDE, одной рабочей среды для работы с разными компиляторами и платформами, поэтому сам сделал себе такую среду (см. alexklm.ru)и ею пользуюсь. Вот только хэлп писать лень и программу доводить до ума тоже, да и не профессионал я, а любитель. Об этом говорит хотя бы то, что о Code::Blocks Studio я услышал впервые сегодня. :)

    ОтветитьУдалить
  34. Только вот попробовал Code::Block с рядом установленной студией 2013. Могу сказать, что я скорей всего перейду на Code::Block. Очень понравился. Я начинающий, но уже успел освоить студию в общих чертах. Запустив Code::Block, сразу освоился без проблем. За 5 мин. Сразу перечислю что понравилось в отличии от студии: 1) Прога мало весит. 2) Можно компилировать тут же созданный пустой доккумент срр, и не надо создавать громоздкий проект. 3) В редакторе кода, сразу имеется нумерация строк, в студии надо глубоко рыться в настройках чтобы вывести это. 4) Разноцветный, и весёлый, веселей писать), а не унылый как в студии. 5) Очень понравился вывод ошибок - таб "Build Mesages". Показывает ошибки и довольно точно объясняет в чём ошибка. В судии сделано не по одной а скопом, сразу все ошибки показывает, громоздко и не понятно в чём там ошибки, объясняется отдалёнными намёками. Единственное что лучше в студии, это то что ошибка показывается в реальном времени, подчёркивается волнистой линией как правило послеидущий знак, объект, функция. Вот главное преимущество студии. Если в Code::Block это добавят, про студию можно будет потихоньку забывать. Это всё правда субъективное мнение, в основном по удобсву юзанья. Естевственно не известна ввиду не опытности насыщенность данной проги полезным наполнением - плагами и библиотеками. Тут ничего сказать не могу, знаю что у Майков с этим очень не плохо, отсюда и вес студии, но не факт. Кто знает - скажите.

    ОтветитьУдалить
  35. Начал проект в MS Visual Studio 2010 Express. Там он нормально компилируется и всё работает. Собственно, вот код:

    #include
    #include

    using namespace std;

    int main()
    {
    setlocale(LC_ALL, "Russian");
    cout << "\n\n\tРусские буквы, а не кракозябры! Ура!";

    _getch();
    return 0;
    }

    А вот в Code::Blocks (версия 13.12) с дефолтовым компилятором GNU GCC Compiler выдаёт кракозябры. Попробовал подключить компилятор Microsoft Visual C++ 2010, стал выдавать такую ошибку:
    link fatal error lnk1104 не удается открыть файл kernel32.lib

    Как это можно исправить?

    ОтветитьУдалить
  36. Подскажите, как использовать компилятор от Visual Studio 2013 в Code::Blocks?

    ОтветитьУдалить
  37. Анонимный28/2/16 13:18

    Дуже добре середовище. Мені особисто в ній і зручно і приємно працювати. Недоліків я не помітив. Що стосується Визуал Студіо, вона зручна, але велика. І складна, до неї точне ще потрібно звикнути ..
    У Кодеблок потужна команда підтримки.

    Дмитро

    ОтветитьУдалить
  38. Анонимный23/7/16 22:55

    Здравствуйте, уважаемая Алена. Подскажите, есть ли возможность сделать так, чтобы debag сам открывал окно watch. Маленько надоедает каждый раз открывать watch, растягивать его, чтобы все в нем было видно, и добавлять в него нужные выражения.

    ОтветитьУдалить
  39. Анонимный

    Подскажите, есть ли возможность сделать так

    Я давно не работаю с Code::Blocks, так что не подскажу

    ОтветитьУдалить
  40. Добрый день! В Dev-C++ ни одна программа не компилируется и не запускается, даже "привет мир" запустить нереал.

    ОтветитьУдалить