Developer Tools

Code Blocks

5  /  3248 Reviews
Dec 29, 2020 Last updated


Older Versions

# Change Log

This is just an excerpt of the changelog with the differences since 17.12. You can read a full changelog on the Code::Blocks homepage.

HiDPI support:

* This release introduces new icon sizes (16, 20, 24, 28, 32, 40, 48, 56 and 64) for almost every UI element (menus, toolbars, project tree, most plugins).

* The icon size is appropriately selected based on the scaling used by the user. The goal is to make icons look big enough and non-blurry. This should work correctly on all major ports (wxMSW, wxGTK, wxCocoa)

* The icons in the editor's margin change size when scaling the editor.

* The icons in the auto-completion popup change size to match the scaling of the text.

* Code::Blocks is marked as DPI-aware:True on Windows which makes it look sharp. Per-monitor support is not yet available.


* The Scintilla component has been updated to version 3.7.5 and most of the code has been synchronized with the code for wxSTC.

* This release introduces some improvements to handling multiple selection. Now it is possible to paste when multiple selections are active.

* A major flickering bug has been fixed when using wxGTK.

* Support for fonts with ligatures on all platforms has been introduced.

* Non-latin keys now work when used as shortcuts in the editor on Linux.

* There is an option to disable the save-to-temp-and-move operation we use by default.

* The context menu has been trimmed down and organized in a better way. Some options are no longer duplicated in the editor and editor notebook context menus.

* More advanced options for closing files have been added to the editor notebook context menu (close to the right/left).

* Lexers for several new languages have been added (Markdown, Nim, Plain text, YAML).

* Small improvements to the settings of the syntax highlighting.


* Add an option to targets which allows the user to select the linker executable to be used for the target. This makes C only project to use the C compiler executable for linking.

* Clear target specific variables from the MacroManager on every recalculation (ticket #582).

* Various improvements to the logging and auto switching to the log tabs.

* Add support for -std=c++17 flag.

* Make the abort button work again (ticket #104). Kill the started process and all children instead of using wxSIGTERM.


* The C/C++ parser used by the Code-completion plugin saw various improvements and bugfixes.

* Various improvements to multi-monitor support and child window placement.

* Do View - Toolbars - Fit toolbars on every startup.

* Many wxWidgets asserts have been fixed.

* Make sure passing --file=path/to/file.ext without line number works, too.

* Make pressing Return/Enter to select the filtered option in the Goto File, Goto Function and Select Target dialogs on Windows.

* SDK: Introduce API for Memory watches which might be used to implement plugins useful for embedded development.

* SDK: Make cbResolveSymLinkedDirPath a bit more robust (prevent infinite loops).

* Improved performance when loading large projects.

* Improved performance when opening the find/replace dialog when there is a project with many targets.

* Script bindings: Make it possible to examine and modify the Extension XML nodes in the project files.

* Debugger: Make it possible to attach to a process using the command line (This commit adds --dbg-attach and --dbg-config command line options).

* Debugger: Make sure to set the SHELL variable before starting GDB

* KeyBinder: Introduce version 2.0 using CodeLight key binding methods; allowing future ability to dynamically set menu and global accelerators to any frame.

* KeyBinder: Fix F2, Shift-F2 and allow linux to handle any View menu check items (ticket #273).

* SpellChecker: Fix wrong white space handling on windows by using Scintilla word finding function.

* wxSmith: Add various missing flags to various controls.

* wxSmith: Improve the UI, fix various crashes and asserts.

Library updates:

* Scintilla to 3.7.5; Sync wx files with the same files in wxWidgets' master

* Exchndl crash handler to v0.9.1

* Hunspell on Windows from v1.3.3 to v1.7.0

* Astyle to v3.1

* wxPDFDoc to v0.9.8 (used in SourceExporter plugin)

Thanks to:


Artem VL


Christophe Marc BERTONCINI




Eran Ifrah

Fabián Inostroza

Gérard Durand (gd_on)

Gokul Krishnan



Jacques Laffont

Juan Manuel Fernández Muñoz


Martin Strunz

Miguel Gimenez






Zheng Fan


Download Code Blocks an open source, free, C, C++ and Fortran IDE cross-platform that provides a ton of options. It is a no-cost C++IDE created with for users who have high demands.

Those behind this free software program designed it for extensive user customization and maximum flexibility. Centered on a plug-in style framework, the software is capable of being extended in the user's preferred manner. There is even a built-in plug-in wizard that empowers users to build their unique plug-ins.

IMPORTANT: We currently do not list Code::Blocks Linux versions, but you can find all of them on projects homepage here.

Code::Blocks Review

How Code::Blocks is Different From the Competition

Unlike other IDEs that are overly complex and require extensive time to figure out, Code::Blocks has a short learning curve. The masterminds behind the software created it with a solid user experience design that makes it easy for users to figure out all the software's nuances on the fly. The software actually replicates the user experience design of Visual Studio, so many users will find that Code::Blocks is quite intuitive.


Aside from its excellent user experience design, Code::Blocks also shines in a number of other areas. Those who detest writing UI code will find that the software does most of the work. Code::Blocks does not create unorganized, faulty code in the slightest. Instead, it generates UI code into C+ files (both .cpp and .h) that users can proceed to edit as they would with normal text files as long as it is not necessary to insert code within the blocks that the program uses. The auto-generated UI code is shockingly clean.

The software also empowers users to move the code around as desired and the program will still recognize it as long as the blocks remain intact. Users will love the fact that they can save resources in the form of .XRC files. Aside from Code::Block's ability to facilitate UI development, it can also function for C++ development on full-scale projects as well as everyday tasks. The IDE handles projects across different platforms without any significant issues. It is not necessary to make significant operating system changes, mess around with Makefiles or build entirely new systems for projects to compile. Just modify the Code::Block compiler settings, and you will be good to go.


If you're complaining regarding native Python support, this has been fixed: Python plugin is available here. You can find the debugger forum thread here.

Same for keyboard shortcut: the shortcut assignment is provided through a plugin named "Keybinder".

Some have complained that the debugger is limited compared to other programs. Many of these users have also noted that the debugger operates too slowly with Linux systems.

The Bottom Line

Code::Blocks might not be as powerful as Visual Studio yet it still provides elite functionality. It can be used for an array of production quality projects. Anyone who works with wxWidgets or production code will prefer this IDE over most others. The bottom line is that Code:Blocks is an excellent no-cost solution for C++ development with Linux.

Found this software useful? Please consider a donation to the author.