es such as constructors, exception handling, and RTTI.

  2. 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.

  3. C++ compilers will link some Standard C++ library in by default,
     but libtool does not know what these libraries are, 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.

