3. Using the C++ Compiler Options
6. Creating and Using Templates
9. Improving Program Performance
10. Building Multithreaded Programs
11.2 Libraries Provided With the C++ Compiler
11.2.1 C++ Library Descriptions
11.5 Statically Linking Standard Libraries
11.7 Replacing the C++ Standard Library
11.7.2 What Cannot Be Replaced
11.7.3 Installing the Replacement Library
11.7.4 Using the Replacement Library
11.7.5 Standard Header Implementation
11.7.5.1 Replacing Standard C++ Headers
11.7.5.2 Replacing Standard C Headers
12. Using The C++ Standard Library
13. Using the Classic iostream Library
Several libraries are shipped with the C++ compiler. Some of these libraries are available only in compatibility mode (-compat=4), some are available only in the standard mode (–compat=5), and some are available in both modes. The libgc and libdemangle libraries have a C interface and can be linked to an application in either mode.
The following table lists the libraries that are shipped with the C++ compiler and the modes in which they are available.
Table 11-1 Libraries Shipped With the C++ Compiler
|
Note - Do not redefine or modify any of the configuration macros for STLport, Rogue Wave or Solaris Studio C++ libraries. The libraries are configured and built in a way that works with the C++ compiler. libCstd and Tool.h++ are configured to inter-operate so modifying the configuration macros results in programs that will not compile, will not link, or do not run properly.
A brief description of each of these libraries follows.
libCrun: This library contains the runtime support needed by the compiler in the standard mode (–compat=5). It provides support for new/delete, exceptions, and RTTI.
libCstd: This is the C++ standard library. In particular, it includes iostreams. If you have existing sources that use the classic iostreams and you want to make use of the standard iostreams, you have to modify your sources to conform to the new interface. See the C++ Standard Library Reference online manual for details.
libiostream: This is the classic iostreams library built with –compat=5. If you have existing sources that use the classic iostreams and you want to compile these sources with the standard mode (–compat=5), you can use libiostream without modifying your sources. Use– library=iostream to get this library.
Note - Much of the standard library depends on using standard iostreams. Using classic iostreams in the same program can cause problems.
libC: This is the library needed in compatibility mode (–compat=4). It contains the C++ runtime support as well as the classic iostreams.
libcomplex: This library provides complex arithmetic in compatibility mode (-compat=4). In the standard mode, the complex arithmetic functionality is available in libCstd.
libstlport: This is the STLport implementation of the C++ standard library. You can use this library instead of the default libCstd by specifying the option -library=stlport4. However, you cannot use libstlport and libCstd in the same program. You must compile and link everything, including imported libraries, using one or the other exclusively.
librwtool (Tools.h++): Tools.h++ is a C++ foundation class library from RogueWave. Version 7 is provided. This library is obsolete and use of the library is deprecated in new code. It is provided to accommodate programs written for C++ 4.2 that used RW Tools.h++.
libgc: This library is used in deployment mode or garbage collection mode. Simply linking with the libgc library automatically and permanently fixes a program’s memory leaks. When you link your program with the libgc library, you can program without calling free or delete while otherwise programming normally. The garbage collection library has a dependency on the dynamic load library so specify -lgc and -ldl when you link your program.
Additional information can be found in the gcFixPrematureFrees(3) and gcInitialize(3) man pages.
libdemangle: This library is used for demangling C++ mangled names.
The man pages associated with the libraries described in this section are located in sections 1, 3, 3C++, and 3cc4.
To access man pages for the C++ libraries, type:
example% man library-name
To access man pages for version 4.2 of the C++ libraries, type:
example% man -s 3CC4 library-name
Some of the C++ libraries are linked by default by the CC driver, while others need to be linked explicitly. In the standard mode, the following libraries are linked by default by the CC driver:
In compatibility mode (-compat), the following libraries are linked by default:
-lC -lm -lc
See A.2.49 -library=l[,l...] for more information.