Code::Blocks

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Not to be confused with the computer programming term Code block.
Code::Blocks
Code Blocks logo.jpg
Cbmain.png
Code::Blocks 10.05
Developer(s) The Code::Blocks team
Stable release 13.12 / December 27, 2013; 6 months ago (2013-12-27)
Development status Active
Written in C++ (wxWidgets)
Operating system Microsoft Windows, Mac OS X, Linux, FreeBSD,[1] OpenBSD,[2] Solaris[3] (cross-platform)
Type IDE
License GNU General Public License 3[4]
Website http://www.codeblocks.org/

Code::Blocks is a free and open source, cross-platform IDE which supports multiple compilers including GCC 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 can also be used for creating ARM, AVR, D, DirectX, FLTK, GLFW, GLUT, GTK+, Irrlicht, Lightfeather, MATLAB, OGRE, OpenGL, Qt, SDL, SFML, STL, SmartWin and wx programs and applications, although in some cases installing third-party SDKs or frameworks is necessary.

Code::Blocks is being developed for Windows, Linux, and Mac OS X and has been ported to FreeBSD,[1] OpenBSD,[2] and Solaris.[3]

The latest stable version as of December 2013 is Code::Blocks 13.12, was released on December 27, 2013.[5]

History[edit]

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 binary packages of the latest SVN version made available on a daily basis, called "nightly builds". These were supported better than the latest official 1.0rc2 release. While this approach provided users with bleeding-edge improvements and allowed developers to get constant feedback, it created an outside illusion that the project was stagnant (because no new releases have been made).[citation needed]

The first stable release was finally made 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.

Instead of creating a branch in the code tree where bugs are fixed in the stable release and new features are added in a separate branch the project continued as before; new features and bug fixes are all added into the same code space. Version 13.12 is the latest stable release; however for the most up-to-date version the user has to download the relatively stable "nightly build" or download the source code from the SVN.

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

Features[edit]

Compilers[edit]

Code::Blocks supports multiple compilers, including MinGW / GCC, 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 compilers of other languages, including GNU Fortran, Digital Mars D and GNU GDC. A plug-in system is included to support other programming languages.

Code editor[edit]

The IDE features syntax highlighting and code folding through the use of the Scintilla editor component, C++ code completion and class browser and an integrated to-do list. All of the open files are organized into tabs, which can be closed and opened at the user's will with the navigation pane or the close (X) button on the tabs. The code editor supports font and font size selection, this allows the user to choose the font and font size with which he is comfortable. In addition, it can provide specific syntax highlighting color theme that can be personalized.

Debugger[edit]

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

GUI designer[edit]

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

User migration[edit]

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

Project files and build system[edit]

Code::Blocks uses a custom build system, which stores its information in XML-based project files, but it can optionally use external makefiles, which simplifies interfacing with projects using the GNU and Qt Software's qmake build systems.

See also[edit]

References[edit]

  1. ^ a b Code::Blocks in FreeBSD's ports collection: devel/codeblocks.
  2. ^ a b Code::Blocks in OpenBSD's ports collection: devel/codeblocks.
  3. ^ a b Directions to install Code::Blocks from source on Solaris
  4. ^ "Licensing". Codeblocks.org. Retrieved 2013-06-22. 
  5. ^ Code::Blocks forum - 13.12 Release Announcement
  6. ^ JN-UG-3028 Code::Blocks IDE User Guide
  7. ^ CodeBlocks 13.12 Full Changelog: http://prdownload.berlios.de/codeblocks/changelog_full

External links[edit]