Next (absent) Up Previous Contents
Up: 3 Migration from a ./mk based build system
Previous: 3.3 The xxx_dev scripts, and include files
[ID index][Keyword index]

3.4 Shared libraries: some observations

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.


Next (absent) Up Previous Contents
Up: 3 Migration from a ./mk based build system
Previous: 3.3 The xxx_dev scripts, and include files
[ID index][Keyword index]
Building Starlink Software
Starlink User Note 248
Norman Gray, Steve Rankin, Peter Draper
29 April 2005.