Difference between revisions of "C++ Support in Embedded Studio"

From SEGGER Wiki
Jump to: navigation, search
Line 1: Line 1:
  +
Embedded Studio supports application development in C and C++.
This article will show how C++ libraries can be enabled in Embedded Studio so you can use C++ library functions in your application.
 
  +
Its C runtime library, based on emRun, provides all fundamentals, tweaked for fastest speed or smallest size.
  +
In addition, the C++ library provides all required features for efficient C++ applications.
   
  +
The C++ library adds:
==How to==
 
For this guide Embedded Studio V5.60 or later is required. For older versions see the legacy steps below.
 
The library is based on the libcxx's embedded subset.
 
   
  +
* C++ header files to wrap up their C equivalents. e.g. cmath to math.h.
* Open the package manager under Tools->Package Manager
 
  +
* C++-specific names and functions and mangled names for math.h. e.g. classification (isinf) and comparison (isless) functions, and cosf to cos(float) / cos to cos(double).
* Select the ARM libcxx Library Package [Common] and select install
 
  +
* C++ header files for exception, new, typeinfo.
** For RISCV the RISCV common package respectively
 
  +
* C++ unwinding library. Functions used for target unwinding, such as to implement exceptions.
* Press Next, Next to start the installation
 
  +
* The C++ ABI library. Low-level support for standard C++ libraries.
* Now either create a new project or use your existing one
 
  +
* The C++ standard library.
* Open the project options and under Libraries->libcxx Library select Yes
 
* You should now get a prompt that will try to install additional libraries for your particular project setup, here select yes and install the additional package
 
* Now you should be able to include the library headers in your source file e.g. #include <cstring> and use the library functions
 
   
  +
This article describes how to enable the C++ libraries in Embedded Studio to use C++ library functions in target applications.
   
  +
== How to use the C++ Library ==
==Legacy STLport==
 
  +
''Note: For libcxx, Embedded Studio V5.60 or later is required.''
For older Embedded Studio versions the libcxx library is not available. Instead use the STLport from the package manager and project options.
 
  +
The installation steps are the same as above.
 
  +
The C++ standard library is based on the embedded C++ subset of the [https://libcxx.llvm.org|"libc++" C++ Standard Library.]
  +
  +
To limit download and installation size of Embedded Studio, the library is supplied as additional packages for the supported target architectures.
  +
To enable the library in a project, only the common package needs to be installed.
  +
Embedded Studio takes care of downloading the specific packages if required.
  +
  +
* Open the package manager under Tools -> Package Manager...
  +
* Select the "ARM libcxx Library Package [Common]" or "RISCV libcxx Library Package [Common]" for installation.
  +
* Optional: Select the specific libcxx Library Packages for your target architecture(s) for installation.
  +
** 'If not done, Embedded Studio will download the specific package for your project. See next steps.'
  +
* Press Next to continue the download and installation.
  +
  +
The library is now ready to use and can be enabled in new and existing projects.
  +
  +
* Open or create a project.
  +
* Option the project options and go to Code -> Libraries.
  +
* In "libcxx Library" select "Yes" or "Yes (No Exceptions)".
  +
* Press OK to save the project options.
  +
* If the specific package for your project has not been installed, yet, Embedded Studio prompts to download and install the package now.
  +
** Press Yes.
  +
** Press Next to continue the download and installation.
  +
  +
The project is now configured to use the C++ standard library.
  +
Include the necessary headers and start using the library functions.
  +
  +
== How to use the STLport Library (Legacy) ==
  +
  +
Embedded Studio V5.50 and prior do not support the libcxx library. Instead STLPort is available.
  +
  +
* Open the package manager under Tools -> Package Manager...
  +
* Select the "STLPort Library Package" for installation.
  +
* Press Next to continue the download and installation.
  +
* Open or create a project.
  +
* Open the project options and go to Code -> Libraries.
  +
* In "STLPort Library" select "Yes".
  +
* Press OK ti save the project options.
  +
  +
The project is now configured to use STLPort as its C++ standard library.

Revision as of 10:55, 13 August 2021

Embedded Studio supports application development in C and C++. Its C runtime library, based on emRun, provides all fundamentals, tweaked for fastest speed or smallest size. In addition, the C++ library provides all required features for efficient C++ applications.

The C++ library adds:

  • C++ header files to wrap up their C equivalents. e.g. cmath to math.h.
  • C++-specific names and functions and mangled names for math.h. e.g. classification (isinf) and comparison (isless) functions, and cosf to cos(float) / cos to cos(double).
  • C++ header files for exception, new, typeinfo.
  • C++ unwinding library. Functions used for target unwinding, such as to implement exceptions.
  • The C++ ABI library. Low-level support for standard C++ libraries.
  • The C++ standard library.

This article describes how to enable the C++ libraries in Embedded Studio to use C++ library functions in target applications.

How to use the C++ Library

Note: For libcxx, Embedded Studio V5.60 or later is required.

The C++ standard library is based on the embedded C++ subset of the "libc++" C++ Standard Library.

To limit download and installation size of Embedded Studio, the library is supplied as additional packages for the supported target architectures. To enable the library in a project, only the common package needs to be installed. Embedded Studio takes care of downloading the specific packages if required.

  • Open the package manager under Tools -> Package Manager...
  • Select the "ARM libcxx Library Package [Common]" or "RISCV libcxx Library Package [Common]" for installation.
  • Optional: Select the specific libcxx Library Packages for your target architecture(s) for installation.
    • 'If not done, Embedded Studio will download the specific package for your project. See next steps.'
  • Press Next to continue the download and installation.

The library is now ready to use and can be enabled in new and existing projects.

  • Open or create a project.
  • Option the project options and go to Code -> Libraries.
  • In "libcxx Library" select "Yes" or "Yes (No Exceptions)".
  • Press OK to save the project options.
  • If the specific package for your project has not been installed, yet, Embedded Studio prompts to download and install the package now.
    • Press Yes.
    • Press Next to continue the download and installation.

The project is now configured to use the C++ standard library. Include the necessary headers and start using the library functions.

How to use the STLport Library (Legacy)

Embedded Studio V5.50 and prior do not support the libcxx library. Instead STLPort is available.

  • Open the package manager under Tools -> Package Manager...
  • Select the "STLPort Library Package" for installation.
  • Press Next to continue the download and installation.
  • Open or create a project.
  • Open the project options and go to Code -> Libraries.
  • In "STLPort Library" select "Yes".
  • Press OK ti save the project options.

The project is now configured to use STLPort as its C++ standard library.