DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(guile.info.gz) Dynamic Libraries

Info Catalog (guile.info.gz) The Guile module system (guile.info.gz) Modules (guile.info.gz) Variables
 
 31.4 Dynamic Libraries
 ======================
 
 Most modern Unices have something called "shared libraries".  This
 ordinarily means that they have the capability to share the executable
 image of a library between several running programs to save memory and
 disk space.  But generally, shared libraries give a lot of additional
 flexibility compared to the traditional static libraries.  In fact,
 calling them `dynamic' libraries is as correct as calling them `shared'.
 
    Shared libraries really give you a lot of flexibility in addition to
 the memory and disk space savings.  When you link a program against a
 shared library, that library is not closely incorporated into the final
 executable.  Instead, the executable of your program only contains
 enough information to find the needed shared libraries when the program
 is actually run.  Only then, when the program is starting, is the final
 step of the linking process performed.  This means that you need not
 recompile all programs when you install a new, only slightly modified
 version of a shared library.  The programs will pick up the changes
 automatically the next time they are run.
 
    Now, when all the necessary machinery is there to perform part of the
 linking at run-time, why not take the next step and allow the programmer
 to explicitly take advantage of it from within his program?  Of course,
 many operating systems that support shared libraries do just that, and
 chances are that Guile will allow you to access this feature from within
 your Scheme programs.  As you might have guessed already, this feature
 is called "dynamic linking".(1)
 
    As with many aspects of Guile, there is a low-level way to access the
 dynamic linking apparatus, and a more high-level interface that
 integrates dynamically linked libraries into the module system.
 

Menu

 
* Low level dynamic linking
* Extensions
 
    ---------- Footnotes ----------
 
    (1) Some people also refer to the final linking stage at program
 startup as `dynamic linking', so if you want to make yourself perfectly
 clear, it is probably best to use the more technical term "dlopening",
 as suggested by Gordon Matzigkeit in his libtool documentation.
 
Info Catalog (guile.info.gz) The Guile module system (guile.info.gz) Modules (guile.info.gz) Variables
automatically generated byinfo2html