Skip to content
embxx - Embedded C++ Library
C++ CMake C
Branch: master
Clone or download
Latest commit edd5482 Dec 8, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
embxx Fixing compilation of embxx::io::WriteQueue::cancelAllWrites. Feb 19, 2018
external Changed external cxxtest repository url. Oct 8, 2013
module - fix embxx_add_cpp11_support when crosscompiling Jun 26, 2016
.gitignore Added "io" module. Jul 31, 2013
CMakeLists.txt CMAKE_CROSSCOMPILE is automatically set by cmake, whenever CMAKE_SYST… Jun 26, 2016
COPYING Added GPL licence header to all files. Oct 8, 2013 Updating README. Jun 5, 2017


Embxx is Embedded C++ library that is developed with intetion to be used in bare metal and Linux based embedded environments. It comes to supplement essential functionality that is missing in widely used STL and BOOST C++ libraries.

Embxx doesn't use "RTTI" and "exceptions". It makes a significant effort to completely eliminate or minimise usage of dynamic memory allocation in order to make it usable with embedded system with low memory footprint and/or slow CPUs.

What you need

  1. CMake - Mandatory. This library uses cmake to generate Makefiles.
  2. gcc v4.7 or greater. Mandatory. This library uses C++11 constructs that may be not fully supported in earlier versions of this compiler.
  3. Doxygen - Optional. Used to generate documentation.
  4. Boost - Optional. Used in unittesting.
  5. Python - Optional. Used to run cxxtest to perform unittesting

How to use

  1. Create build directory (at any convenient place) and cd there:
    $> mkdir <embxx_sources>/build
    $> cd <embxx_sources>/build
  2. Generate makefiles using cmake together with the path to embxx sources. If no definitions specified, the makefiles will include compilation of unittests and examples:
    $> cmake ..
    To exclude unittests, use -DNO_UNIT_TESTS=1 option:
    $> cmake -DNO_UNIT_TESTS=1 ..
    To exclude examples, use -DNO_EXAMPLES=1 option:
    $> cmake -DNO_EXAMPLES=1
    To exclude both unittests and examples, use both options:
    $> cmake -DNO_UNIT_TESTS=1 -DNO_EXAMPLES=1 ..
  3. Compile all the sources and install. The installation root directory is <build_dir>/install
    $> make install
  4. To run the unittests (if such were compiled):
    $> ctest
  5. Generate doxygen documentation. The documentation will be generated in <build_dir>/doxygen.
    $> make doxygen 
  6. Add "<build_dir>/install/include" to include search paths for your project

Using embxx as git submodule

The alternative way to use embxx is simply add its repository as git submodule in your project, then add <git_embxx_submodule_dir> to your include search paths.

Current documentation

The latest documentation for the library may also be found at the following link: Dropbox or from release artifacts

Git branches

"master" - main branch, will always contain latest stable (released) version. "develop" - current development branch

Contact information

Author: Alex Robenko E-mail:

You can’t perform that action at this time.