Codeblocks что это за программа и нужна ли она
CodeBlocks :: не просто ещё одна IDE
Видя регулярные холивары «студия vs эклипс» или «programmers notepad против vim», каждый раз собираюсь поведать миру об универсальном инструменте, которым сам пользуюсь в течение уже нескольких лет.
Это многофункциональная IDE для С/С++ разработки Code::Blocks.
CodeBlocks — это свободная кроссплатформенная среда, заполняющая нишу между монструальными и неповоротливыми «взрослыми» системами для больших проектов, типа Eclipse, Visual Studio, Net Beans, и убогими по функционалу, но шустрыми блокнотами типа Scintilla, причем преимущества и тех, и других складываются и позволяют использовать данную систему как для написания небольших проектов для встраиваемых приложений, так и для программирования приложений для РС под Windows, Linux и MacOs.
Основные характерные особенности среды:
Итак, начнем по порядку.
CodeBlocks имеет быструю встроенную систему сборки, способную реализовывать параллельную сборку (задействуя при этом «лишние» головы процессора), но одновременно с этим допускает сборку внешними инструментами (GNU Make, Cmake, etc) с рукописными скриптами типа makefile, причем тоже многопоточно.
Как и мощные профессиональные оболочки, имеет развитые средства поддержки проектов, включая workspace для объединения родственных проектов, общие межпроектные зависимости, множественные цели (target)
Предусмотрен механизм импорта проектов из других сред разработки
а также экспорта открытого файла в разнообразные форматы:
Отладка
Как и эклипс, кодеблокс позволяет отлаживать проекты через интерфейс GNU GDB (и даже «Also supports MS CDB»).
Лично я никогда отладками не пользовался, и даже ноги JTAG на платах остаются неразведенными, но многие жизни без него не представляют. Поэтому спешу успокоить: CodeBlocks ничуть не хуже в этом плане, чем остальные. Вот цитата с оф. сайта:
Интерфейс
Автодополнение (Code-completion). После ввода 4-х символов выпадает список с подходящими идентификаторами. Количество начальных символов настраивается, как и многие другие параметры.
Выбор варианта подсветки исходного текста — без комментариев:
Контекстное меню (правой кнопкой в окне редактора) весьма развито:
Пункты меню «Find declaration of» и «Find implementation of» служат для поиска объявления и реализации (имплементации) выделенного объекта, а «Find occurrences of» — все включения во всех файлах проекта.
В этом же меню видим упоминавшийся ранее «Swap header/source».
Чуть ниже — запуск плагина автоформатирования AStyle, который форматирует текущий файл по одному из шаблонов:
То, что в меню указаны хоткеи не для всех пунктов, отнюдь не означает, что их нельзя настроить.
Более того, настройки можно разложить по разным профилям.
Можно сплитить рабочий экран на произвольное количество окошек.
Легко и непринужденно — простым перетаскиванием вкладок к границам основного окна.
Перетаскивая вкладки из дополнительных окон в основное или соседние, можно объединять их обратно.
Ещё одна мегафича, которая мне нравилась ещё в IARe, это быстрая навигация вперед/назад: Alt + стрелки вправо/влево.
Наверно, я уже утомил своим перечислением, хотя не затронул многих интересных вещей. Пора переходить к практической части.
Установка
Чтобы был доступен весь функционал, нужно при установке отметить галочку включения дополнительных плагинов. Хотя, можно их добавить и после установки, но это не так удобно. В конце концов, проще после некоторых экспериментов отключить или удалить неиспользуемые.
Также, при установке в windows присутствует опция MinGW, по которой C::B устанавливает свой личный экземпляр MinGW внутри себя.
Забегая вперед, скажу, что эта штука может конфликтовать с другими win-gcc тулчейнами, находящимися в системе, например, с CygWin, так что в случае необъяснимых ошибок или подвисаний проблема скорее всего в этом.
В некоторых источниках рекомендуют ставить в последовательности wxWidgets (если нужно) — MinGW — CB(без MinGW).
Итак, установили.
Пока пыл не угас, попробуем по-быстрому чего-нибудь состряпать.
Например, окошко WinGUI.
1. Создаем новый проект. File-> New-> Project (или ссылку Create a new project на странице приветствия).
2. Из кучи визардов выбираем Win32 GUI project (придется ещё вниз помотать) и жмем «Go».
Далее следуем инструкциям, заполняем необходимые поля и в конечном итоге получаем проект-шаблон с готовой центральной формой.
Запускаем. Жмем Build, Run или Build and run
[ 50.0%] Compiling: main.cpp
[100.0%] Linking executable: bin\Release\ggg.exe
Output size is 7.00 KB
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 0 warnings
Build log saved as:
file://D:%5cwork%5cEXPERIMENTS%5cCB_Wx%5cggg%5cggg_build_log.html
Вуаля:
Ну, кто тут спрашивал, в чем бы под винду написать? 🙂
Шучу, конечно. На самом деле это была просто иллюстрация, естественно, что на голом WinGUI никто писать не будет, когда есть возможность пользоваться удобными фреймворками типа wxWidgets или Qt.
В общем, немного сумбурно получилось, но общее представление, надеюсь, дает.
Свободная кроссплатформенная среда с открытым кодом и расширяемая с помощью плагинов, которая имеет большинство функций, имеющихся в других продуктах, как коммерческих, так и свободных, весьма нетребовательна как к объему памяти и носителей, так и к производительности системы. В частности, работает заметно шустрее эклипса. На мой взгляд, идеальное средство для разработки программ для микроконтроллеров и небольших сервисных программ (например, консольных).
Если будет интерес к теме, в следующий раз опишу процесс создания микроконтроллерного проекта.
10 настроек CodeBlocks, которые надо сделать сразу после установки
Сразу после установки CodeBlocks настройте его под себя. Среда CodeBlocks была сделана программистами для программистов. Она имеет множество настроек. Рассмотрим самые важные.
1. Установите ассоциации с файлом проектов
Выполните «Меню — Настройки — Среда»
Нажмите кнопку «Управление».
Нажмите сначала «Удалить все», чтобы не было лишних ассоциаций, а потом установите те из них, которые вам нужны. Если вы новичок, то рекомендую поставить галочку только в первой строчке «.cbp (project file). В этом случае вы будет уверены, что если зашли в проект, то всё будет работать.
Затем нажмите «Применить».
2. Увеличьте шрифт редактора
Шрифт редактора по умолчанию мелковат.
Нажмите на клавишу Ctrl и, не отпуская, покрутите колесо мыши. Так можно быстро выбрать комфортный шрифт.
3. Увеличьте шрифт выводимых сообщений
С помощью предыдущего приёма вы можете установить размер шрифта в окне «Журнал сборки»:
Но неудобство в том, что размер шрифта в этом журнале будет опять сброшен после следующей сборки.
Поэтому войдите в меню «Настройки — Среда — Вид»
И поставьте нужный размер шрифта логов сообщений.
4. Выберите стиль отступов
Так как язык Си — это язык свободной формы, то программист волен располагать текст программы как угодно. Компилятор всё равно ориентируется на точки с запятой в конце команды. Это породило целый ряд возможных стилей отступа. И CodeBlocks позволяет выбрать любой из самых популярных стилей.
Для этого войдите в меню «Настройки — Редактор — Средства форматирования»
Я рекомендую использовать Allman (ANSI), который наиболее удобен по целому ряду причин:
Но, конечно же, если вы привыкли к другому стилю, то выбирайте его.
5. Создайте свой шаблон проекта
Когда вы создаете новый проект, то CodeBlocks предлагает целый ряд шаблонов. Вы легко можете добавить свой. Для этого начните с любого шаблона (или с чистого листа), и напишите вашу минимальную программу.
Потом войдите в меню «Файл — Сохранить проект как шаблон…»
Введите имя шаблона и нажмите Ok.
Для создания нового проекта по этому шаблону войдите в меню «Файл — Создать — Проект — Пользовательские шаблоны»
6. Установите код текста программы по умолчанию
Войдите в меню: «Настройки — Редактор — Код по умолчанию» и добавьте код, с которого вы обычно начинаете ваш файл. Обычно это комментарий к программе.
Вы можете задать свой текст для каждого вида файла. При создании нового файла этого типа в начале уже будет размещён этот код.
7. Настройте стиль подсветки синтаксиса
CodeBlocks уже имеет настройки подсветки синтаксиса для множества языков программирования. Вы можете как выбрать уже готовый стиль, так и создать новые цветовые схемы.
Для этого войдите в меню: «Настройки — Редактор — Подсветка синтаксиса»
Здесь вы можете настроить подсветку любых элементов текста.
8. Настройте сочетания клавиш
В среде CodeBlocks множество пунктов меню. Вы можете настроить сочетания клавиш для быстрого доступа к нужным пунктам.
Для этого войдите в меню: «Настройки — Редактор — Сочетания клавиш»
Здесь вы можете создать несколько профилей, и в каждом профиле определить свои клавиатурные сокращения для вызова пунктов меню.
9. Настройте сокращения для быстрого ввода кода
Кроме автодополнения кода в CodeBlocks есть дополнительно так называемые сокращения.
Автодополнение кода — это подсказка редактора, когда вы набираете часть слова, а редактор предлагает возможные варианты:
Сокращения — это наборы букв, которые нужно написать и нажать Ctrl+J. После этого в текст будут вставлены полный текст.
Для настройки сокращений войдите в меню: «Настройки — Редактор — Сокращения»
Вы здесь видите, что если набрать «ife» и нажать Ctrl+J, то в текст будет вставлена структура «if — else». Это позволяет ускорить ввод кода.
10. Добавьте сниппеты
Сниппеты — это фрагменты кода, которые можно вставлять в текст простым перетаскиванием мышкой.
Для включения окна сниппетов поставьте галочку в пункте меню «Вид — Фрагменты программы»
После этого щёлкните правой кнопкой мыши на строке «codesnippets»
Нажмите «Добавить фрагмент программы» и введите текст кода и заголовок.
Теперь если мышкой перетащить заголовок сниппета в текст программы, то будет вставлен фрагмент текста. Это позволяет быстро добавлять повторяющиеся тексты в программе и избегать ошибок при вводе.
Как видите, среда CodeBlocks может быть настроена для удобной и эффективной работы.
Похожие записи:
Комментарии 24
Спасибо за ценную информацию, Константин. Я — новичок в программировании на С, поэтому она мне очень кстати.
отличная информация и очень ценная. спасибо огромное, ВАМ!
с наступающим 2018 годом!
здоровья, удачи, любви и тепла в Вашем доме.
Спасибо.
С уважением,
Юрий Бородицкий
Здравствуйте! Это по поводу урока в вашем курсе Азбука программирования. У меня некорректно срабатывает программа. Когда делаю точку останова и нажимаю F8 устанавливается курсор на точку, как положено, но потом сразу открывается консоль, как при нажатии F9(при этом я F9 не нажимал). В консоли все выполняется правильно, как в вашем уроке. Но при нажатии любой клавиши консоль не закрывается, ее можно закрыть только, если полностью закрываешь программу codeBlock. Пожалуйста, помогите!
Скорее всего, у Вас не создан проект. Попробуйте создать проект по шаблону и выполнить отладку после этого.
Здравствуйте! В курсе азбука программирования не работает видео 4.2 Руссификация GTK. Так же и аудиофайл не скачивается. Исправьте, пожалуйста!
Проверил, всё работает. По техническим проблемам с получением курса пишите на zakaz@sheremetev.info
Здравствуйте! Подскажите, пожалуйста, что значит эта ошибка undefined reference to `gdk_color_parse’?
Это значит, что компилятор не может найти библиотеку. Её нужно указать явно.
не пойму, где у меня ошибка в коде
// 5.5 Текстовый редактор
#include
GtkWidget *textview1;
GtkTextBuffer *buffer1;
int ShowError()
<
GtkWidget *dialog;
dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL,
GTK_MESSAGE_ERROR, GTK_BUTTONS_OK,
_U(» Не найден файл\n main.glade»));
// Меню «Создать»
G_MODULE_EXPORT void on_imagemenuitem1_activate (GtkButton *button, gpointer label)
<
gtk_text_buffer_set_text(buffer1, «», 0);
>
int ShowMainWindow()
<
GtkWidget *window1, *statusbar1;
GtkBuilder *builder;
builder = gtk_builder_new ();
if (gtk_builder_add_from_file (builder, «main.glade», NULL))
<
window1 = GTK_WIDGET(gtk_builder_get_object(builder, «window1»));
statusbar1 = GTK_WIDGET(gtk_builder_get_object(builder, «statusbar1»));
textview1 = GTK_WIDGET(gtk_builder_get_object(builder, «textview1»));
gtk_window_set_default_size (GTK_WINDOW (window1), 500, 300);
gtk_window_set_position(GTK_WINDOW(window1), GTK_WIN_POS_CENTER);
gtk_builder_connect_signals (builder, NULL);
g_signal_connect(G_OBJECT(window1), «destroy», G_CALLBACK(gtk_main_quit), NULL);
gtk_statusbar_push( GTK_STATUSBAR(statusbar1), 0, _U(«Строка состояния»));
// Поменяли цвет текста
GdkColor color;
gdk_color_parse («green», &color);
gtk_widget_modify_text(textview1, GTK_STATE_NORMAL, &color);
int main (int argc, char *argv[])
<
gtk_init (&argc, &argv);
if (ShowMainWindow ())
<
gtk_main ();
return 0;
>
else
<
ShowError();
return 1;
>
>
этот файл посмотрите, первый не точно скопировал
// 5.5 Текстовый редактор
#include #include
GtkWidget *textview1;
GtkTextBuffer *buffer1;
int ShowError()
<
GtkWidget *dialog;
dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL,
GTK_MESSAGE_ERROR, GTK_BUTTONS_OK,
_U(” Не найден файл\n main.glade”));
// Меню “Создать”
G_MODULE_EXPORT void on_imagemenuitem1_activate (GtkButton *button, gpointer label)
<
gtk_text_buffer_set_text(buffer1, “”, 0);
>
int ShowMainWindow()
<
GtkWidget *window1, *statusbar1;
GtkBuilder *builder;
builder = gtk_builder_new ();
if (gtk_builder_add_from_file (builder, “main.glade”, NULL))
<
window1 = GTK_WIDGET(gtk_builder_get_object(builder, “window1”));
statusbar1 = GTK_WIDGET(gtk_builder_get_object(builder, “statusbar1”));
textview1 = GTK_WIDGET(gtk_builder_get_object(builder, “textview1”));
gtk_window_set_default_size (GTK_WINDOW (window1), 500, 300);
gtk_window_set_position(GTK_WINDOW(window1), GTK_WIN_POS_CENTER);
gtk_builder_connect_signals (builder, NULL);
g_signal_connect(G_OBJECT(window1), “destroy”, G_CALLBACK(gtk_main_quit), NULL);
gtk_statusbar_push( GTK_STATUSBAR(statusbar1), 0, _U(“Строка состояния”));
// Поменяли цвет текста
GdkColor color;
gdk_color_parse (“green”, &color);
gtk_widget_modify_text(textview1, GTK_STATE_NORMAL, &color);
int main (int argc, char *argv[])
<
gtk_init (&argc, &argv);
if (ShowMainWindow ())
<
gtk_main ();
return 0;
>
else
<
ShowError();
return 1;
>
>
У меня тоже не работает этот вариант — компилятор ругается на gdk_color_parse
В Sources.zip\Sources\Sources\Урок 5.5\main.c по другому реализовано изменение цвета текста:
// Поменяли цвет фрагмента текста
tag = gtk_text_buffer_create_tag (buffer1, «blue_foreground»,
«foreground», «blue», NULL);
gtk_text_buffer_get_iter_at_offset (buffer1, &start, 7);
gtk_text_buffer_get_iter_at_offset (buffer1, &end, 13);
gtk_text_buffer_apply_tag (buffer1, tag, &start, &end);
И это работает
Если компилятор выдает ошибку, на некоторую функцию, то это значит, что он не может найти библиотеку. Укажите явно библиотеку, в которой эта функция реализована.
CodeBlocks в вопросах и ответах
Мне часто присылают вопросы по CodeBlocks. В этой статье я хочу ответить на самые популярные.
1. Почему CodeBlocks самая скачиваемая IDE в мире?
Один из самых больших в мире веб-сайтов для разработчиков открытого ПО — это сайт SourceForge.net. На этом сервисе размещено более 430 000 проектов. В день загружается более 4,5 миллионов программ.
Если посмотреть статистику по скачиванию IDE, то на первом месте стоит Code::Blocks.
Почему же IDE CodeBlocks такая популярная? Ответ прост — это среда, которая делается программистами для программистов. Она содержит такое количество настроек, что каждый может с легкостью настроить ее под себя. А количество возможностей просто зашкаливает:
В результате CodeBlocks имеет высокий рейтинг.
2. Как указать программе аргументы командной строки?
Меню: «Проект — Параметры программы»
Учтите при этом, что если вам нужно передать в качестве параметра имя файла, то убедитесь, что файл находится в рабочем каталоге выполнения. Посмотреть каталог можно в меню «Проект — Свойства — Цели сборки».
3. Как быстро отформатировать текст программы?
Когда вы копируете некоторый пример исходного текста, то часто он выглядит неряшливо. Например, так.
Для быстрого форматирования используйте плагин Astyle.
Результат будет такой:
4. Как добавить поддержку ISO С 11 в компилятор?
Меню: «Настройки — Компилятор»
5. Как включить панель вывода?
Клавиша F2 включает-выключает панель вывода.
6. Как писать программы не для консоли?
По умолчанию весь вывод программы на Си идет в консоль. Консоль — это специальное окно для вывода системных сообщений.
Если вы хотите создавать оконный интерфейс, то нужно использовать некоторую оконную библиотеку.
Самое простое — это использовать Win32API. Или использовать кросс-платформенную библиотеку GTK+.
В этом случае оконо консоли вам будет не нужно и надо его отключить. Для этого щелкните правой кнопкой мыши на проекте и в меню выберите свойства:
Затем выберите вкладку «Цели сборки» и в списке «тип» вместо «Консольное приложение» выберите «Приложение с графическим интерфейсом».
Нажмите «ok» для сохранения. После этого внесите любое исправление в программе (вставьте пустую строку) и нажмите F9. Консоль исчезнет.
7. Как указать путь к библиотеке?
Если программа использует сторонние библиотеки, то вовремя запуска программа должна иметь доступ к этим библиотекам. Самое простое — это скопировать файлы библиотеки в папку с программой.
Но есть и альтернативный путь. Вы можете указать компилятору папку, где брать файлы. Например, в сборке Си-экспресс все библиотеки GTK+ лежат в папке GTK-LIB. Вы можете указать эту папку в настройках компилятора:
Меню: «Настройки — Compiler… — Программы — Дополнительные пути».
Только не забудьте скопировать эти файлы в папку программы, когда понесете программу заказчику.
8. Как в CodeBlocks сменить сочетания клавиш?
Меню: «Настройки — Редактор — Сочетание клавиш»
9. Как запустить программу с точкой останова?
На нужной строчке нажмите правую кнопку мыши и выберите «Переключить точку останова».
Затем запустите отладчик любым из трех вариантов:
10. Как поменять цвет комментариев в codeblocks
Меню — Настройки — Редактор — Подсветка синтаксиса
И поменяйте цвет для строк:
Внизу в тексте сразу отразятся изменения цветов, которые вы сделали.
11. Что означает сообщение «Другой экземпляр программы уже работает»?
Если вы получили такое сообщение:
это означает, что вы попытались запустить CodeBlocks дважды. По умолчанию так делать нельзя. Это не ошибка, поэтому волноваться нечего.
Если вам нужно запустить несколько экземпляров, то зайдите в меню «Настройки — Среда» и уберите галочку: «Разрешить работу только одного экземпляра…»
12. Можно ли устанавливать одновременно CodeBlocks и другую IDE?
Если вы устанавливаете сборку Си-экспресс, то она ничего не меняет в системных файлах. Распаковали и работает. Больше не нужна — удалили папку и всё. Поэтому вы можете использовать эту сборку совместно с любыми IDE на вашем компьютере.
13. Что означает цвета желтый и зеленый в строках редактора?
Это показатель изменений: