4.3.1. Using the libraries

The ARM C++ library is provided with the same APCS, endian, and ARM/Thumb variants as the C library variants listed in Table 4.2 and Table 4.1. For C++, the libraries are named armcpplib_apcs_variant.

You must build your code with APCS options that are supported by one of the precompiled library variants. The linker selects a precompiled library version that is compatible with the APCS options you select for the assembler and compiler. Refer to Automatic inclusion of libraries for more information.

If you select APCS options for which a suitable precompiled library variant does not exist, the linker warns that the library file cannot be found.

Note

Because the ARM C++ library is supplied in binary form only, you cannot rebuild the library with non-supported APCS options.

The source for the Rogue Wave Standard C++ library is not freely distributable. It may be obtained from Rogue Wave Software Inc., or through ARM Ltd, for an additional licence fee.

Using the standard C library from C++

If you use only the ANSI C headers and your own headers with the C++ compiler, you need only the following library support:

C++ compiler helper functions

You can build a runtime version of the C++ helper functions from c:ARM250\Armcpplib_kit\cpplib\runtime.c

From the DOS command-line, type:

armcpp -apcs APCS_options -DALL runtime.c

to build the runtime.o object file.

Alternatively, you can use one of the prebuilt ARM C++ library variants. See Using the standard C++ library for more information.

An ANSI C library binary

The ANSI C libraries are located in c:ARM250\lib. Refer to The ANSI C library for more information on the standard ANSI C libraries.

Using the standard C++ library

When you build your C++ code the linker selects an appropriate precompiled C++ library version.The ARM C++ library provides:

Rogue Wave Standard C++ library

This is supplied in binary form only, as part of the precompiled armcpplib variants, and as sublibraries that you can use to rebuild armcpplib libraries.

The library files are located in c:ARM250\Armcpplib_kit\stdlib.

Additional library functions

These functions are built into the C++ library to support the compiler, and to provide basic support for some parts of the Standard C++ library that are not supported by the Rogue Wave implementation.

Source code for the additional functions is located in c:ARM250\lib\Armcpplib_kit\cpplib. The header files are installed in c:ARM250\include.

The additional functions are:

  • C++ compiler helper functions. Calls to these functions are generated by the compiler to implement certain language constructs.

  • Support for the new operator. The header file new.h is installed in c:ARM250\include. If you are using the Rogue Wave Standard C++ library header new, you do not need new.h

  • Partial implementation of the type_info class. The header file typeinfo is installed in c:ARM250\include.

  • Partial support for C++ iostreams. The header file iostream.h is installed in c:ARM250\include.

In addition, an identical header file named stream.h is installed in c:ARM250\include for compatibility with previous releases of ARM C++.

Copyright © 1997, 1998 ARM Limited. All rights reserved.ARM DUI 0041C