GNU Info

Info Node: (libtool.info)Building modules

(libtool.info)Building modules


Next: Dlpreopening Up: Dlopened modules
Enter node , (file) or (file)node

Building modules to dlopen
==========================

   On some operating systems, a program symbol must be specially
declared in order to be dynamically resolved with the `dlsym' (or
equivalent) function.

   Libtool provides the `-export-dynamic' and `-module' link flags
(Note: Link mode), which do this declaration.  You need to use these
flags if you are linking an application program that dlopens other
modules or a libtool library that will also be dlopened.

   For example, if we wanted to build a shared library, `libhello',
that would later be dlopened by an application, we would add `-module'
to the other link flags:

     burger$ libtool gcc -module -o libhello.la foo.lo \
                     hello.lo -rpath /usr/local/lib -lm
     burger$

   If symbols from your _executable_ are needed to satisfy unresolved
references in a library you want to dlopen you will have to use the flag
`-export-dynamic'.  You should use `-export-dynamic' while linking the
executable that calls dlopen:

     burger$ libtool gcc -export-dynamic -o hell-dlopener main.o
     burger$


automatically generated by info2www version 1.2.2.9