tool.info,  Node: Using libltdl,  Next: Trace interface,  Prev: Dlopened modules,  Up: Top

11 Using libltdl
****************

Libtool provides a small library, called 'libltdl', that aims at hiding
the various difficulties of dlopening libraries from programmers.  It
consists of a few headers and small C source files that can be
distributed with applications that need dlopening functionality.  On
some platforms, whose dynamic linkers are too limited for a simple
implementation of 'libltdl' services, it requires GNU DLD, or it will
only emulate dynamic linking with libtool's dlpreopening mechanism.

libltdl supports currently the following dynamic linking mechanisms:

   * 'dlopen' (POSIX compliant systems, GNU/Linux, etc.)
   * 'shl_load' (HP-UX)
   * 'LoadLibrary' (Win16 and Win32)
   * 'load_add_on' (BeOS)
   * 'NSAddImage' or 'NSLinkModule' (Darwin and Mac OS X)
   * GNU DLD (emulates dynamic linking for static libraries)
   * libtool's dlpreopen (*note Dlpreopening::)

libltdl is licensed under the terms of the GNU Lesser General Public
License, with the following exception:

     As a special exception to the GNU Lesser General Public License, if
     you distribute this file as part of a program or library that is
     built using GNU Libtool, you may include it under the same
     distribution terms that you use for the rest of that program.

* Menu:

* Libltdl interface::           How to use libltdl in your programs.
* Modules for libltdl::         Creating modules that can be 'dlopen'ed.
* Thread Safety in libltdl::    Registering callbacks for multi-thread safety.
* User defined module data::    Associating data with loaded modules.
* Module loaders for libltdl::  Creating user defined module loaders.
* Distributing libltdl::        How to distribute libltdl with your package.

