CodeBlocks - the open source
cross platform C++ IDE
Julius Parulek
Background
What is IDE (Integrated Development
Environment)?
A set of tools to develop libraries or
applications (debugger, compiler, linker,
libs, …)
A windowed GUI environment for
Project(s) management
Build settings
Comfortable programming
Why to use IDE?
Build in text highlighting editors
Why to use IDE?
Code completion as you type
Why to use IDE?
Automatically create classes, methods,
and properties
Why to use IDE?
Browser of namespaces and classes
Why to use IDE?
Build in debugging tools
Why to use IDE?
Workspace include projects that provide
various build targets
Free C++ IDEs
Windows system
Visual C++ Toolkit 2003, Dev-C++,
Eclipse, CodeBlocks
GNU\Linux system
Text: TIA, RHIDE, vi (+gcc)
Graphical: Anjuta, jGRASP, CodeForge,
KDevelop, Eclipse, CodeBlocks
Problems with IDEs
Individually project files format
Information incompatibility
Few cross-platform developers
Deployment to other IDEs
Team projects, project porting
CodeBlocks overview
Cross-platform IDE (wxWidgets)
Useful set of pluggings (svn, …)
Supports many compilers (gcc, MinGW,
MSVC, …)
Compiles directly or with makefiles
Well written format (XML) of project
(.cbp) and workspace (.workspace) files
Example f3dFormat
File - f3dFormat.workspace
include 3 projects
Example f3dFormat.cbp
Example f3dFormat.cbp
Output library name
Static library
Produce debug symbols
Additional include directories
Linker option for
target (empty)
Linker option for
the whole project
Project files
Relation to targets
Using GUI
CodeBlocks and MinGW – I.
MinGW - Minimalist GNU-Windows
GNU toolset (gcc,gdb,…)
Collection of freely available standard
headers and libraries (do not require
Windows specific DLLs)
CodeBlocks is very suitable tool to work
with MinGW
CodeBlocks and MinGW – II.
Set upping the MinGW
1) Install MinGW
2) Edit settings
in CodeBlocks
CodeBlocks features
Import MSVC (*.dsw,*.dsp) and Dev-
C++ files
Support custom template projects
CodeBlocks creates basic project (.cbp) file
instead of you
CodeBlocks
CodeBlocks
http://www.codeblocks.org/
http://www.codeblocks.org/
MinGW
MinGW
http://www.mingw.org/
http://www.mingw.org/