Code::Blocks

Code::Blocks is a free, open-source cross-platform IDE that supports multiple compilers including GCC, Clang and Visual C++. It is developed in C++ using wxWidgets as the GUI toolkit. Using a plugin architecture, its capabilities and features are defined by the provided plugins. Currently, Code::Blocks is oriented towards C, C++, and Fortran. It has a custom build system and optional Make support.

Code::Blocks
Codeblocks logo.png
Code::Blocks 16.01
Code::Blocks 16.01
Developer(s)The Code::Blocks team
Initial release2005; 15 years ago (2005)
Stable release
20.03 / March 29, 2020; 4 months ago (2020-03-29)
Repository Edit this at Wikidata
Written inC++ (wxWidgets)
Operating systemCross-platform
TypeIDE
LicenseGNU GPLv3[1]
Websitecodeblocks.org

Code::Blocks is being developed for Windows and Linux (the latest macOS version is 13.12 released on 2013/12/26) and has been ported to FreeBSD[2], OpenBSD[3] and Solaris.[4]

HistoryEdit

After releasing two release candidate versions, 1.0rc1 on July 25, 2005 and 1.0rc2 on October 25, 2005, instead of making a final release, the project developers started adding many new features, with the final release being repeatedly postponed. Instead, there were nightly builds of the latest SVN version made available on a daily basis.[citation needed]

The first stable release was on February 28, 2008, with the version number changed to 8.02. The versioning scheme was changed to that of Ubuntu, with the major and minor number representing the year and month of the release. Version 20.03 is the latest stable release; however for the most up-to-date version the user can download the relatively stable nightly build or download the source code from SVN.

On April 2020, a critical software vulnerability was found in the Code::Blocks IDE, identified by CVE-2020-10814. [5][6]

Jennic Limited distributes a version of Code::Blocks customized to work with its microcontrollers.[7]

FeaturesEdit

CompilersEdit

Code::Blocks supports multiple compilers, including GCC, MinGW, Digital Mars, Microsoft Visual C++, Borland C++, LLVM Clang, Watcom, LCC and the Intel C++ compiler. Although the IDE was designed for the C++ language, there is some support for other languages, including Fortran and D. A plug-in system is included to support other programming languages.

Code editorEdit

The IDE features syntax highlighting and code folding (through its Scintilla editor component), C++ code completion, class browser, a hex editor and many other utilities. Opened files are organized into tabs. The code editor supports font and font size selection and personalized syntax highlighting colours.

DebuggerEdit

The Code::Blocks debugger has full breakpoint support. It also allows the user to debug their program by having access to the local function symbol and argument display, user-defined watches, call stack, disassembly, custom memory dump, thread switching, CPU registers and GNU Debugger Interface.

GUI designerEdit

As of version 13.12 Code::Blocks comes with a GUI designer called wxSmith. It is a derivative port of wxWidgets version 2.9.4.[8] To make a complete wxWidgets application, the appropriate wxWidgets SDK must be installed.

User migrationEdit

Some of Code::Blocks features are targeted at users migrating from other IDE's - these include Dev-C++, Microsoft Visual C++ project import (MSVC 7 & 10), and Dev-C++ Devpak support.

Project files and build systemEdit

Code::Blocks uses a custom build system, which stores its information in XML-based project files. It can optionally use external makefiles, which simplifies interfacing with projects using the GNU or qmake build systems.

See alsoEdit

ReferencesEdit

  1. ^ "License". Retrieved 2014-07-21.
  2. ^ Code::Blocks in FreeBSD's ports collection
  3. ^ Code::Blocks in OpenBSD's ports collection
  4. ^ Directions to install Code::Blocks from source on Solaris
  5. ^ CodeBlocks Security Vulnerability - POVONsec
  6. ^ CVE - CVE-2020-10814
  7. ^ "JN-UG-3028 Code::Blocks IDE User Guide". Archived from the original on 2017-06-05. Retrieved 2008-05-28.
  8. ^ CodeBlocks 13.12 Changelog

External linksEdit