[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
6.1 Writing libraries for C++
Creating libraries of C++ code should be a fairly straightforward process, because its object files differ from C ones in only three ways:
- Because of name mangling, C++ libraries are only usable by the C++ compiler that created them. This decision was made by the designers of C++ in order to protect users from conflicting implementations of features such as constructors, exception handling, and RTTI.
-
On some systems, the C++ compiler must take special actions for the
dynamic linker to run dynamic (i.e., run-time) initializers. This means
that we should not call
ld
directly to link such libraries, and we should use the C++ compiler instead. -
C++ compilers will link some Standard C++ library in by default, but
libtool does not know which are these libraries, so it cannot even run
the inter-library dependence analyzer to check how to link it in.
Therefore, running
ld
to link a C++ program or library is deemed to fail.
Because of these three issues, Libtool has been designed to always use
the C++ compiler to compile and link C++ programs and libraries. In
some instances the main()
function of a program must also be
compiled with the C++ compiler for static C++ objects to be properly
initialized.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on December 1, 2011 using texi2html 5.0.