With only one or two exceptions, all the Starlink libraries are
built and installed as shared libraries, as well as static ones. This
is as normal, and if you refer to a library in the usual way, with a
-l
option, your system will do The Right Thing. On those
few occasions where there are library complications (AST, for example,
can be linked in a surprising variety of ways), the details will be
described in the package documentation.
The build system uses libtool
extensively, and it installs its `libtool library files',
wibble.la
, in the library directory alongside the more
usual static .a
and dynamic .so
files (as
appropriate for your platform). If you also use libtool, you might
usefully link against these .la
files yourself.
Given the choice, most linkers will prefer to link against a shared
library, but if the difference matters to you, you will probably
already know how to make your linker do what you want. Recall that on many
Unixes, the environment variable LD_LIBRARY_PATH
specifies a list of directories which are searched for shared
libraries, in addition to a set of system defaults; the analogue on
Mac OS X is DYLD_LIBRARY_PATH
.
Systems tend to differ markedly in the details of their linker
behaviour. See your system's ld
man page for more
details than a sane mind can comfortably encompass.