Kenwood HP 9000 Personal Computer User Manual


 
136 Chapter 5
Creating and Using Libraries
Creating Archive Libraries
$ ar tv libunits.a
rw-rr 265/ 20 230 Feb 2 17:19 1990 length.o
rw-rr 265/ 20 228 Feb 2 16:25 1990 mass.o
rw-rr 265/ 20 230 Feb 2 16:24 1990 volume.o
The next example replaces length.o in libunits.a, only if length.o
is more recent than the one already contained in libunits.a:
$ ar ru libunits.a length.o
crt0.o
In 64-bit mode, the crt0.o startup file is not needed for shared bound
links because dld.sl does some of the startup duties previously done by
crt0.o. You still need to include crt0.o on the link line for all fully
archive links (ld -noshared). In 32-bit mode, crt0.o must always be
included on the link line.
Users who link by letting the compilers such as cc invoke the linker do
not have include crt0.o on the link line.
Archive Library Location
After creating an archive library, you will probably want to save it in a
location that is easily accessible to other programmers who might want
to use it. There are two main choices for places to put the library:
in the 32-bit /usr/lib or 64-bit /user/lib/pa20_64 directory
in the 32-bit /usr/local/lib or /usr/contrib/lib directory
Using /usr/lib and /usr/lib/pa20_64
Since the linker searches /usr/lib or /usr/lib/pa20_64 by default,
you might want to put your archive libraries there. You would eliminate
the task of entering the entire library path name each time you compile
or link.
The drawbacks of putting the libraries in /usr/lib or
/usr/lib/pa20_64 are:
You usually need super-user (system administrator) privileges to
write to the directory.
You could overwrite an HP-UX system library that resides in the
directory.