Kenwood HP 9000 Personal Computer User Manual


 
152 Chapter 5
Creating and Using Libraries
Version Control with Shared Libraries
When you run a program that uses shared libraries and was linked
before HP-UX 10.0, the dynamic loader first attempts to open the shared
library ending in .0. If it cannot find that library, it attempts to open the
library ending in .sl.
The +h Option and Internal Names
The +h option gives a library an internal name for library-level
versioning. Use +h to create versioned libraries:
+h internal_name
internal_name is typically the same name as the library file itself, for
example libA.1 as in +h libA.1. When you link with a library that
has an internal name, the linker puts the internal_name in the shared
library dependency list of the executable or shared library being created.
When running the resulting executable or shared library, it is the library
named by this internal name that the dynamic loader loads.
You can include a relative or absolute path with the internal name, but
you must ensure the dynamic loader can find the library from this name
using its normal search process.
For 32-bit mode, if internal_name includes a relative path (that is, a path
not starting with /), the internal name stored by the linker is the
concatenation of the actual path where the library was found and
internal_name, including the relative path. When the resulting program
is run, if the dynamic loader cannot find the library at this location, the
program will not run.
If internal_name includes an absolute path (that is, a path starting with
/), the internal name stored by the linker is simply the internal_name,
including the absolute path. When the resulting program is run, if the
dynamic loader cannot find the library at this location, the program will
not run.
For 64-bit mode, see “Internal Name Processing” for more information.
File System Links to Shared Libraries
This section discusses the situation where you have used the ln(1)
command to create file system links to shared library files. For example:
$ ld -b -o /X/libapp.sl *.o Create shared library.
$ ln -s /X/libapp.sl /tmp/libmine.sl Make the link.