Установка и настройка code
Содержание:
- Антивирус блокирует запись программы на диск
- 11. Windows блокирует работу CodeBlocks
- 12. Отладчик не останавливается на точке останова
- 13. Неверное указание пути к компилятору
- 14. Программа на GTK+ работает только в среде CodeBlocks
- Compiler
- Установка Code::Blocks
- Microsoft Windows
- Scripted Wizard
- Горячие клавиши Code::Blocks
- Установка компилятора MinGW
- JavaScript Code Blocks
- Debug
- Editor:
- General:
- Translation for trunk
- Free configurable IDE
- New plugins:
- Code completion plugin:
- Misc (targeting wx3)
- Summary, for download
Антивирус блокирует запись программы на диск
Вы получаете следующее сообщение: «Permission denied».
Решение: Отключите антивирус.
11. Windows блокирует работу CodeBlocks
Бывает так, что на одном компьютере CodeBlocks прекрасно работает, а при копировании на другой компьютер возникают ошибки. Это может быть следствием того, что Windows блокирует некоторые возможности программы.
Решение. Запустите CodeBlocks от имени администратора
Для этого нажмите правую кнопку мыши на файле codeblocks.exe
12. Отладчик не останавливается на точке останова
Вы поставили точку останова, но отладчик ее игнорирует. Это следствие ошибки №4. У вас символы кириллицы или пробелы в пути к программе.
Решение: Создавайте проекты в папке «c:\Work» или в любой другой папке, в пути к которой нет пробелов или кириллицы.
13. Неверное указание пути к компилятору
При запуске CodeBlocks появляется ошибка: «Can’t find compiler executable in your in your configured search path’s for GNU GCC COMPILER»
Это означает, что в настройках неверное указание пути к компилятору. Для исправления зайдите в меню «Настройки — Compiler… — Программы» и нажмите кнопку «Автоопределение».
Если CodeBlocks обнаружит компилятор, то можно работать. Если нет, то переустановите «Си-экспресс».
14. Программа на GTK+ работает только в среде CodeBlocks
Если запускать GTK-программу в среде Code::Blocks, то все работает, а если запустить exe-файл отдельно, то окна не появляются. Это означает, что программа не может найти GTK-библиотеки.
Они есть в сборке «Си-экспресс» в папке GTK-LIB. Их нужно скопировать в папку с программой. Для разработки в папку Debug, а для релиза в папку Release.
Compiler
- Make it possible to utilize more than 16 CPU threads while building (ticket #327)
- Make Code::Blocks work better with current SDCC (ticket #567, #371, thanks Philipp Klaus Krause)
- Clean up the clang flags a bit and add the common sort options
- Add -std=c++14 and -std=gnu++14 to the list of C++ only flags (format the file to be a bit more readable)
- Try to improve the invalid compiler message we’re printing
- Add button to compiler toolbar to show the select target dialog
- Improve clang log parsing (parse the file and line for notes)
- Use the correct flag to the linker when building windows gui applications with clang (ticket #51, thanks edison)
- Fix the AVR GCC compiler on linux to not add invalid include and linker paths
- Remove deprecated cygwin only flag (ticket #526, thanks Jannick)
- Corrected “defines” switch for Gfortran (thanks darmar, ticket #499)
- Improvement of parsing of Gfortran compiler output (thanks darmar, ticket #497)
- Updated output parser for VS2015 (thanks sodev, ticket #496)
- Add -std=c11 to default compiler options
- Batch mode doesn’t work on MacOS (ticket #425, thanks Franko F for the original patch)
- Save the other resource settings in the Compiler options dialog
- **Add support for the following options **: -std==c++1y and -std=c++1z
- Fix description of “-ansi” compiler-flag in “options_common_warnings.xml”.
- Expand backtick expression when doing clean for makefile projects (fixes #326)
- Switch to build log when compiling single file (ticket #222, thanks Sergey Bezgodov)
- Remove the limit on the number of processors and change the default to use all available in the machine (fixes #327)
- Don’t compile the regexes for the compiler until they are really needed (speeps up startup)
- Support for new compilers: android-GCC MW, powerpc-EABI (patch by unknown person)
- Added more common options to clang, gcc, msvc
- parsing Gfortran v5.* compiler messages in new v5.* format; option -fopenmp should be applied at compiler and linker command line (thanks darmar)
- Applied patch to make Cygwin compiler work with recent Cygwin installations (thanks stahta01)
Установка Code::Blocks
После скачивания установочного файла можем приступать к самой установке программы. Для этого нам потребуется совершить пару телодвижений:
- Открываем пакет установки Code::Blocks.
- Жмем Next >.
- Жмем I Agree.
- Здесь мы можем выбрать различные виды установки либо настроить ее самостоятельно. Я предпочитаю Full версию установки. Жмем Next >.
- Можете выбрать другой каталог установки Code::Blocks вместо стандартного. Жмем Install.
- Ждем…
- Жмем Finish!
Теперь у вас установлена полноценная среда разработки Code::Blocks!
Однако на этом еще не все. Остался последний штрих.
При первом запуске у вас попросят указать, какие расширения файлов будут привязаны к Code::Blocks по умолчанию. Здесь особой разницы нет. Я выбираю Yes, associate Code::Blocks with C/C++ file types.
Если мы все правильно сделали, то должны увидеть экран приветствия:
Чтобы окончательна удостоверится в работоспособности IDE, давайте запустим тестовою программу.
Для этого жмем File -> New -> File… После чего открывается диалоговое окно:
- Выбираем C/C++ source. Жмем Go.
- Жмем Next >. Можем поставить галочку Skip this page next time чтобы в следующий раз лишний раз не пролистывать эту страницу.
- Выбираем C++ и идем дальше.
- Выбираем расположения файла и жмем Finish!
Теперь у вас должно открыться окно для написания кода. Скопируйте или напишите сами данный код:
#include <iostream>
using namespace std;
int main() {
cout << «Hello, world!» << endl;
return 0;
}
1 |
#include <iostream> usingnamespacestd; intmain(){ cout<<«Hello, world!»<<endl; return; } |
Теперь для запуска программы нажмите кнопку F9 (компиляция и запуск). У вас должно появится окно где будет написано наше тестовое сообщение:
Вывод нашей программы
Hello, world!
Process returned 0 (0x0) execution time : 0.020 s
Press any key to continue.
Вот и наше тестовое сообщение!
Microsoft Windows
File | Download from |
---|---|
codeblocks-20.03-setup.exe | FossHUB or Sourceforge.net |
codeblocks-20.03-setup-nonadmin.exe | FossHUB or Sourceforge.net |
codeblocks-20.03-nosetup.zip | FossHUB or Sourceforge.net |
codeblocks-20.03mingw-setup.exe | FossHUB or Sourceforge.net |
codeblocks-20.03mingw-nosetup.zip | FossHUB or Sourceforge.net |
codeblocks-20.03-32bit-setup.exe | FossHUB or Sourceforge.net |
codeblocks-20.03-32bit-setup-nonadmin.exe | FossHUB or Sourceforge.net |
codeblocks-20.03-32bit-nosetup.zip | FossHUB or Sourceforge.net |
codeblocks-20.03mingw-32bit-setup.exe | FossHUB or Sourceforge.net |
codeblocks-20.03mingw-32bit-nosetup.zip | FossHUB or Sourceforge.net |
NOTE: The codeblocks-20.03-setup.exe file includes Code::Blocks with all plugins. The codeblocks-20.03-setup-nonadmin.exe file is provided for convenience to users that do not have administrator rights on their machine(s).
NOTE: The codeblocks-20.03mingw-setup.exe file includes additionally the GCC/G++/GFortran compiler and GDB debugger from MinGW-W64 project (version 8.1.0, 32/64 bit, SEH).
NOTE: The codeblocks-20.03(mingw)-nosetup.zip files are provided for convenience to users that are allergic against installers. However, it will not allow to select plugins / features to install (it includes everything) and not create any menu shortcuts. For the “installation” you are on your own.
If unsure, please use codeblocks-20.03mingw-setup.exe!
Scripted Wizard
- Apply YWX additions (GetWizardScriptFolder, FillContainerWithSelectCompilers,AppendContainerWithSelectCompilers,FillContainerWithChoices,AppendContainerWithChoices)
- Improve Code::Blocks plugin wizard (ticket #481, thanks bluehazzard)
- Add support for 3.1 in the WxWidgets wizard (thanks New Pagodi)
- Fix images to be 32×32 and be transparent (fixes ticket #314)
- Added FLUID and SDL2 templates (patch by unknown person)
- Add new templates to automake build-system
- Added Java wizards for fun
- Added qt5 and improved qt4 wizard (patch by unknown person)
- Added arduino and msp430 wizards (patch by unknown person)
- Added SDL2 wizard (patch by unknown person)
- Added wizard for D language (patch by unknown person)
- Applied (modified) patch by stahta01 to relax wizards when searching for library files to link against, see:
Горячие клавиши Code::Blocks
Работа с файлами
Сочетание клавиш | Назначение |
---|---|
Ctrl + N | Новый файл или проект |
Ctrl + O | Открыть существующий файл или проект |
Ctrl + S | Сохранить текущий файл |
Ctrl + Shift + S | Сохранить все файлы |
Ctrl + F4 / Ctrl + W | Закрыть текущий файл |
Ctrl + Shift + F4 / Ctrl + Shift + W | Закрыть все файлы |
Ctrl + Tab | Активировать следующий открытый файл |
Ctrl + Shift + Tab | Активировать предыдущий открытый файл |
Редактирование кода
Сочетание клавиш | Назначение |
---|---|
Ctrl + Z | Отменить последнее действие |
Ctrl + Shift + Z | Повторить последнее действие |
Ctrl + X | Вырезать выделенный текст |
Ctrl + C | Копировать выделенный текст |
Ctrl + V | Вставить текст из буфера обмена |
Ctrl + A | Выбрать весь текст |
F11 | Переключить текст и заголовочный файл |
Ctrl + Shift + C | Комментировать выделенный код |
Ctrl + Shift + X | Раскомментировать выделенный код |
Ctrl + D | Дубликат строки |
Ctrl + пробел / Ctrl + J | Автозаполнение / Сокращения |
Ctrl + Shift + пробел | Показать подсказку |
Ctrl + T | Переместить строку выше |
Ctrl + B | Переключить закладку |
Alt + PgUp | Перейти к предыдущей закладке |
Alt + PgDown | Перейти к следующей закладке |
F12 | Переключение блокировки текущего блока |
Shift + F12 | Переключить все вкладки |
Сборка и и запуск проекта
Сочетание клавиш | Назначение |
---|---|
F9 | Собрать и запустить |
Ctrl + Shift + F9 | Скомпилировать текущий файл |
Ctrl + F9 | Сборка |
Ctrl + F10 | Запустить |
Ctrl + F11 | Пересобрать |
Отладка проекта
Сочетание клавиш | Назначение |
---|---|
F8 | Начать отладку |
Ctrl + F7 | Пропустить блок кода |
Shift + F7 | Войти в блок кода |
Ctrl + Shift + F7 | Выйти из блока кода |
F5 | Переключить точку останова |
F4 | Выполнить до курсора |
Alt + F1 | Предыдущая ошибка |
Alt + F2 | Следующая ошибка |
Установка компилятора MinGW
Установка самого Code::Blocks не представляет ничего сложного. Желательно только устанавливать его в папку, в пути к которой нет пробелов или кириллицы.
Дистрибутив Code::Blocks версии 17.12 содержал старую версию компилятора MinGW, поэтому приходилось отдельно скачивать Code::Blocks без компилятора MinGW и затем устанавливать компилятор.
В настоящий момент версия Code::Blocks 20.03 содержит актуальную версию MinGW (по умолчанию используется 64-разрядная версия компилятора, но можно скачать дистрибутив и с 32-разядной версией).
Но на всякий случай рассмотрим отдельно установку MinGW (на примере 32-разрядной версии). Сначала скачиваем дистрибутив Code::Blocks с сайта проекта mingw.org. После запуска появится следующее окно.
Нажмимаем Install и получаем следующее окно.
Здесь в поле Installation Directory указываем расположение файлов компилятора. По умолчанию это C:\MinGW, его и оставляем. Нажимаем Continue и начинается загрузка и установка менеджера для установки MinGW.
Нажимаем Continue и получаем следующее окно.
Для программированя на C++ выбираем для установки пакеты mingw32-base-bin (A Basic MinGW Installation) и mingw32-gcc-g++-bin (The GNU C++ Compiler), а затем жмём в меню Installation -> Apply Changes. Появится окно, в котором будет отображаться загрузка выбранных пакетов.
По завершении загрузки пакетов нажимаем на кнопку Close
При первом запуске Code::Blocks автоматически обнаружит установленный компилятор. При возникновении проблем необходимо перейти в меню Settings -> Compiler… и на вкладке Toolchain executables проверить правильность пути к MinGW, а также имена файлов компилятора и линковщика. Теперь можно создавать проект.
JavaScript Code Blocks
These code blocks are similar to the JavaScript Validation Rules and
Capturing Rules, except that they can exist independently of any other step, and they don’t have
to be run on a particular response.
Code blocks can exist anywhere in your script. In fact, if you wanted to you could make a script
that’s just a single code block, and do everything in JavaScript.
A code block
Code blocks are more powerful than ordinary step-by-step scripting because you have the control flow of an actual
programming language: looping, conditionals, functions, etc.
To add a code block to your script, select Add Code Block from the top bar.
Debug
Menu Path
Function
Keyboard Shortcut
Debug > Start / Continue
Run current project in debugger
F8
Debug > Stop debugger
Stop current debugging session
Shift-F8
Debug > Run to cursor
Run program until it reaches the current line
F4
Debug > Next line
Execute the next line of code
F7
Debug > Step into
Execute the next line of code, but step inside functions
Shift-F7
Debug > Step out
Continue execution until the current frame exits
Ctrl-F7
Debug > Next instruction
Execute the next assembly instruction
Alt-F7
Debug > Step into instruction
Execute the next assembly instruction, if it is a function call step into it
Alt-Shift-F7
Debug > Toggle breakpoint
Toggle breakpoint in current line
F5
Editor:
- Try to fix flicker when moving the cursor with keyboard/mouse (ticket #890)
- Disable middle-mouse button paste until user sets Settings -> Editor -> Other editor setting -> Enable marked text paste with middle mouse click (on Windows)
- Fix non-latin keys to work in shortcuts in the editor on Linux
- Add controls for selecting the technology and font quality
- Auto-size marker margin column and switch to breakpoint image with the correct size
- Make the width of the change bar to change with the zoom
- Add an option which can be used to disable the save-to-temp-and-move operation we use by default
- Add menu item ‘Copy full path’ in the editor tab context menu
- Implement ‘Fold current block’ to work when the cursor is inside the block (ticket #700)
- Fix the feature which restores editor folds when the project/editor is reloaded
- Make it possible to set the white-space mode to “Only indent”
- Enable pasting when there are multiple cursors and typing with them is enabled
- Group all find related items together at the top of the context menu in the editor
- Move the Code Refactoring -> Rename symbols menu item to the Insert submenu
- Move Properties to the bottom of the editor’s context menu
- Remove excessive separators from the editor’s context menu
- Remove menu items from editor’s context menu which are duplicated in the editor’s tab
- Move Copy/Cut/Paste from a submenu Edit to the main context menu of the editor
- Add ‘Close to the left’ and ‘Close to the right’ menu items in the context menu for the editor’s notebook
- Implement caret buffer in the editor (up to now we have it implemented in the EditorTweaks plugin). UI in the Settings -> Editor -> General -> Other editor settings
- Do not mess the editor with brace selection completion when there are multiple cursors
- Pass a theme object to editors created for new files (ticket #100)
- Make the line for the current position during debugging to use the same colour as the caret line (ticket #659)
General:
- Better support for dark themes in Linux
- Support open file’s containing folder using the context menu of the file
- Context menu item to show file in project tree
- Improved lexers for various languages
- Added the ability to show tooltips on cbAuiNotebook tabs — show full filename and project in tooltip for editor tabs
- Added the ability to maximize editors with double-click on tab
- Add ability to hide the editor tabs, can be toggled with “View -> Hide editor tabs” or “Ctrl+H”
- Select file from all projects in the workspace (Search->Goto file)
- Some accessibility improvements — more things are accessible only with a keyboard
- Lots of improvements to the Marcos support in the options — more options support macro expansion and there are more variables
- Added per language override for the ‘use tabs’ setting. Currently only for Python files (always use spaces) and for Makefiles (always use tabs)
- Use gtk-notebook as default notebook on systems using wxGTK, so the notebook-tabs integrate more smooth into the systems theme
- Active project no longer stored in workspace but in dedicated layout file for the workspace,
- Speed up scrolling in wxScintilla
- Harmonised find and replace dialogues
- Added power user support for units glob feature. These are directory paths that can be specified, and all files in there will be considered as sources for the project. This can be based on a wild-card for the file types, and can be recursive. When no wild-card is specified (empty) the default CB wild-card for adding files is used
- Made the localization to be off by default, hopefully this will minimize the number of people getting the right-to-left text issue
- Add predefined settings for the terminals on Linux
Translation for trunk
Language | Status | Untranslated | Needs review | Last Changed |
---|---|---|---|---|
Afrikaans |
18 099.17 |
2155 |
2009-01-22 11:29:08 UTC 2009-01-22 |
|
Albanian |
64 097.05 |
2109 | 6 |
2008-12-05 20:31:31 UTC 2008-12-05 |
Arabic |
654 069.90 |
1519 | 52 |
2016-04-01 18:11:36 UTC 2016-04-01 |
Basque |
179 091.76 |
1994 |
2012-01-24 17:56:04 UTC 2012-01-24 |
|
Belarusian |
79 096.36 |
2094 |
2014-04-14 18:44:36 UTC 2014-04-14 |
|
Bengali |
38 098.25 |
2135 |
2007-02-24 14:01:37 UTC 2007-02-24 |
|
Bosnian |
80 096.32 |
2093 | 46 |
2011-10-04 17:56:05 UTC 2011-10-04 |
Brazilian Portuguese |
2173 000.00 |
6 |
2021-09-04 14:20:56 UTC 2021-09-04 |
|
Breton |
120 094.48 |
2053 |
2018-04-26 08:11:32 UTC 2018-04-26 |
|
Bulgarian |
798 063.28 |
1375 | 66 |
2011-02-05 16:44:20 UTC 2011-02-05 |
Catalan |
957 055.96 |
1216 | 7 |
2011-03-17 13:37:43 UTC 2011-03-17 |
Catalan (Valencian) |
100.00 |
2173 |
2017-08-27 10:34:02 UTC 2017-08-27 |
|
Chinese (Hong Kong) |
39 098.21 |
2134 |
2009-01-24 11:05:42 UTC 2009-01-24 |
|
Chinese (Simplified) |
2173 000.00 |
3 |
2021-08-18 10:37:37 UTC 2021-08-18 |
|
Chinese (Traditional) |
2173 000.00 |
2021-02-26 08:18:09 UTC 2021-02-26 |
||
Chuang; Zhuang |
14 099.36 |
2159 |
2010-12-10 11:56:21 UTC 2010-12-10 |
|
Czech |
912 058.03 |
1261 | 233 |
2011-07-28 20:06:21 UTC 2011-07-28 |
Danish |
320 085.27 |
1853 | 123 |
2008-05-17 23:04:56 UTC 2008-05-17 |
Dutch |
2120 002.44 |
53 |
2017-03-16 21:47:10 UTC 2017-03-16 |
|
English (United Kingdom) |
2173 000.00 |
2020-10-18 10:48:24 UTC 2020-10-18 |
||
Estonian |
11 099.49 |
2162 | 2 |
2008-05-16 13:59:50 UTC 2008-05-16 |
Finnish |
265 087.80 |
1908 |
2009-02-05 17:28:22 UTC 2009-02-05 |
|
Franco-Provençal |
8 099.63 |
2165 | 2 |
2009-02-18 23:12:30 UTC 2009-02-18 |
French |
2173 000.00 |
2021-08-24 10:07:39 UTC 2021-08-24 |
||
French (Canada) |
100.00 |
2173 |
2021-05-28 16:18:33 UTC 2021-05-28 |
|
Galician |
146 093.28 |
2027 |
2021-01-30 10:32:31 UTC 2021-01-30 |
|
German |
2173 000.00 |
1 |
2021-04-20 18:53:55 UTC 2021-04-20 |
|
Greek |
1675 022.92 |
498 |
2012-01-28 22:15:51 UTC 2012-01-28 |
|
Hebrew |
59 097.28 |
2114 | 4 |
2010-09-27 12:00:53 UTC 2010-09-27 |
Hungarian |
1387 036.17 |
786 | 12 |
2013-01-06 14:50:56 UTC 2013-01-06 |
Indonesian |
393 081.91 |
1780 | 24 |
2011-10-11 16:05:15 UTC 2011-10-11 |
Italian |
2172 000.05 |
1 |
2021-04-25 15:38:09 UTC 2021-04-25 |
|
Japanese |
1388 036.13 |
785 |
2014-07-18 10:07:23 UTC 2014-07-18 |
|
Korean |
1313 039.58 |
860 | 7 |
2015-05-03 09:19:09 UTC 2015-05-03 |
Kurdish |
58 097.33 |
2115 |
2017-04-06 23:17:29 UTC 2017-04-06 |
|
Latvian |
25 098.85 |
2148 |
2011-05-06 13:26:57 UTC 2011-05-06 |
|
Lithuanian |
2173 000.00 |
1 |
2014-03-01 09:03:44 UTC 2014-03-01 |
|
Low German |
1 099.95 |
2172 |
2009-08-19 14:11:23 UTC 2009-08-19 |
|
Malay |
100.00 |
2173 |
2008-04-05 10:28:34 UTC 2008-04-05 |
|
Min Nan Chinese |
13 099.40 |
2160 |
2011-12-07 14:45:06 UTC 2011-12-07 |
|
Norwegian Bokmal |
772 064.47 |
1401 | 8 |
2014-03-08 20:33:23 UTC 2014-03-08 |
Ossetian |
100.00 |
2173 |
2017-09-04 16:14:56 UTC 2017-09-04 |
|
Persian |
103 095.26 |
2070 | 1 |
2008-12-29 18:42:15 UTC 2008-12-29 |
Polish |
1833 015.65 |
340 | 14 |
2020-04-29 09:48:06 UTC 2020-04-29 |
Portuguese |
2173 000.00 |
2017-06-11 13:56:44 UTC 2017-06-11 |
||
Romanian |
412 081.04 |
1761 | 6 |
2014-02-05 17:50:41 UTC 2014-02-05 |
Russian |
2173 000.00 |
3 |
2020-12-16 12:05:16 UTC 2020-12-16 |
|
Serbian |
436 079.94 |
1737 |
2020-03-15 11:15:36 UTC 2020-03-15 |
|
Serbian Latin |
100.00 |
2173 |
2014-02-08 18:38:57 UTC 2014-02-08 |
|
Sinhalese |
2136 001.70 |
37 | 5 |
2014-06-15 07:47:12 UTC 2014-06-15 |
Slovak |
750 065.49 |
1423 |
2012-10-26 19:29:11 UTC 2012-10-26 |
|
Slovenian |
1275 041.33 |
898 | 72 |
2012-09-01 17:31:22 UTC 2012-09-01 |
Spanish |
2172 000.05 |
1 | 1 |
2021-04-18 23:32:30 UTC 2021-04-18 |
Swedish |
1226 043.58 |
947 | 119 |
2010-02-13 14:41:20 UTC 2010-02-13 |
Thai |
219 089.92 |
1954 |
2021-05-17 13:35:10 UTC 2021-05-17 |
|
Turkish |
1657 023.75 |
516 | 180 |
2013-03-31 16:44:34 UTC 2013-03-31 |
Ukrainian |
1251 042.43 |
922 | 3 |
2020-08-03 15:27:30 UTC 2020-08-03 |
Uyghur |
17 099.22 |
2156 | 1 |
2016-05-10 15:48:14 UTC 2016-05-10 |
Uzbek |
14 099.36 |
2159 | 14 |
2021-03-22 10:43:42 UTC 2021-03-22 |
Vietnamese |
32 098.53 |
2141 | 43 |
2008-12-20 13:39:00 UTC 2008-12-20 |
Yiddish |
100.00 |
2173 |
2008-04-16 21:28:59 UTC 2008-04-16 |
Translated
Untranslated
Free configurable IDE
Code:: Blocks is a free and open-source integrated development environment designed for programmers. This development tool offers a wide range of codes and project features that help users develop applications and plugins. The app uses C, C++, and Fortran coding languages and operates as a GUI tool.
What makes Code:: Blocks unique is that it focuses on a plugin-based extension platform. With this, users can create the software the way they want to. Not only that, but compared to other IDEs, such as Microsoft Visual Studios, Eclipse, and Clion, this app is easier to use and runs more smoothly.
What is Code:: Blocks?
As mentioned, Code:: Blocks is the perfect resource for programmers and developers who want to create applications and plugins. It contains much more than what usual IDEs have to offer. It offers project templates, which you can use to create your app. These projects are left blank, giving you the creative freedom to write your application however you want. You can use the suggestions and tools that the app provides, but you can also work your way through your codes on your own.
Blocks also come with a useful line duplicating feature, allowing you to save time as you write your codes. With this, you can repeat the same codes several times in the project without rewriting them. The lines can also be edited easily and quickly, making the whole process seamless. Furthermore, the app allows you to get support for multi-threading with its debugging tool. Instead of picking layers apart to debug your project, this app digs into the code to resolve the issue.
For major developers, Blocks has a strong inter-project dependency setup. With this, you can see how different parts affect each other. It also lets you see how your references might be interconnected. Additionally, the program utilizes parallel builds and full break-point support. Another helpful feature is code completion, which aids with the tedious work of correcting code mistakes or recalling keywords that you cannot fully remember.
How do you use Code::Blocks?
Installing the app on your computer is not a complicated process. However, setting it up can be a hassle for beginners. To begin with, you will have to select a compiler. Don’t worry, though, since you can download and link to any compiler you would like. The next step is to choose the debugger path. Then, you will choose the programming language the code will be in—either C or C++. Note that you need to ensure that the compiler supports the language you selected.
All proper debugging and files should fall under a project that you will have to create. You should also note that only toy programs can be done outside an operation. Also, you won’t have access to the debugger in these environments. However, when you do create a project, it will come with everything you need. From relevant information to source codes and header files, everything is within this compilation. Debugging will be your next and final step once you are done creating your project.
Despite being one of the easier-to-use tools, however, Code:: Blocks still requires significant knowledge from the users. All of the Qt tools need to be pre-installed, and unless you are well-versed in programming, this can be time-consuming and difficult. The coding is also dense to read, making it difficult to pick out specific lines of codes. Additionally, the app is limited because the system is becoming more and more outdated, even with the newer versions.
Another thing to note is that the code completion does not work as intended and more work is required for the user to ensure that the code is done. It is a pity since most IDEs ship with some form of code completion. Moreover, you cannot keep two toy programs within a single project. Only one main function file is allowed in tandem within the individual system, making the app inefficient for larger projects, such as corporate software or video games.
Still a good tool for small projects
Overall, Code::Blocks is a helpful and innovative program for developers and programmers. With this, you can create Qt applications and plugins with ease. However, it comes with various limitations and has a bit of a clumsy feel to it. It also inefficient for larger projects. Nevertheless, it is suitable for smaller projects and provides you with all the resources to help you build.
New plugins:
- Abbreviatons (extracted from the core): provides auto-completion (note that this has nothing to do with code completion): http://wiki.codeblocks.org/index.php?title=Abbreviations_plugin
- Cscope: integrates the source code searching features of Cscope: http://wiki.codeblocks.org/index.php?title=Cscope_plugin
- DoxyBlocks: support for doxygen inline documentation: http://wiki.codeblocks.org/index.php?title=DoxyBlocks_plugin
- EditorConfig: http://forums.codeblocks.org/index.php/topic,16512.0.html
- EditorTweaks: make one off changes to active editor (EOL mode, wrap etc) and code alignment tool: http://wiki.codeblocks.org/index.php?title=Editor_Tweaks_plugin
- FileManager: tree view of the file system with support for basic file management operations in the management pane: http://wiki.codeblocks.org/index.php?title=File_Manager_plugin
- NassiShneiderman: creation of Nassi Shneiderman diagrams: http://wiki.codeblocks.org/index.php?title=NassiShneiderman_plugin
- ReopenEditor: reopens last closed editor(s) via hotkey (Ctrl+Shift+t) or menu-item
- SmartIndent (extracted from the core): multi-language support for automatic indenting of code to match typical indentation styles
- SpellChecker: check spelling in comments and strings using hunspell: http://wiki.codeblocks.org/index.php?title=SpellChecker_plugin
- ToolsPlus: creation and management of custom tools: http://wiki.codeblocks.org/index.php?title=Tools%2B_plugin
Code completion plugin:
- Take the zoom of the current editor into account when deciding if to use a buffered auto completion list
- Fixed annoying bug that the compiler calls fail due to missing dependencies (DLLs)
- Fix parsing of function declaration which returns enum type (partial fix for ticket #127)
- Fix parsing of enums whose underlying types are specified (in C++11) (ticket #176)
- Fix parsing of when the result of function is cast to void (ticket #25)
- Fix parsing of struct instances declared on same statement (ticket #762)
- Fix parsing of multi-line #if defined() (ticket #761)
- Fix parsing of ‘for’ loops with empty declaration block. Handle the case where the first token is a semicolon
- Fix parsing of #defined \ macros (ticket #693)
- Fix crash caused by accessing array with out of bound index.
- Do not start system header thread if the list of directories is empty (ticket #780)
- Improve the logic for starting/stopping system header threads
- Fix crash when the project has files with invalid targets and the user tries to do header completion
- Ignore attribute((whatever)) in typedef definition (ticket #759)
- Support function declaration lists (ticket #724)
- Handle comma as terminator for function declarations
- Fix leaks of SystemHeadersThread objects when shutting down the application
- Log how much time traversing a directory to find headers takes
- Do not traverse root folders for drives
- Use better method for detecting file system loops
- Do not block the UI when showing the list of include completions while a thread is traversing
- Fix assertion when clicking on “Find references of:” (ticket #633)
Misc (targeting wx3)
- Fix assert when loading files and the global enconding setting is set to default (ticket #305)
- Fix assert when closing the application during long compilation
- Memory dump window has wrong proportion on windows (ticket #557, thanks bluehazzard)
- Fix assert when executing Build -> Errors -> Next error and there is no error in the list
- Fix the highlight language button in the status bar
- Fix assert when pressing the auto-detect button in the compiler settings
- Always disable symbol browser in such builds to prevent crashes (ticket #225)
- Fix compilation with latest wx master (thanks blauzahn)
- Fix assert on startup in IncrementalSearch (ticket #405, thanks bluehazzard)
- Fix assert due to the same labeled property added to the wxSmith’s property grid for wxStdDialogButtonSizer
- Fix some alignment asserts reported for some of the dialogs
- Fix assert when calling wxSetWorkingDirectory with an empty path
- Fix two asserts in the AVR wizard
- Fix lots of asserts when batch building (there are some left though)
- Fix assert when the current target uses “No compiler” (fixes ticket #315)
- Fix asserts when wizard icons are no 32×32 pixels big (fixes ticket #314)
- Fix an assert in ToDo plugin (thanks blauzahn)
- Fix assert when deleting a compiler
- Fix assert when the search mask in the Find/Replace dialog is empty (fix formatting of the code around)
- Fix the ValueTooltip autosizing. It was disabled for wx29, but should work in all wx3.0, because my patch should be in them
Summary, for download
Download the full changelog here: http://sourceforge.net/projects/codeblocks/files/Binaries/17.12/changelog