Bajo SunOS 4.x, Solaris 2.x y HP-UX, los ficheros objetos pueden crearse complando el código
fuente con parametros especiales del compilador, con lo que se produce una biblioteca
compartida.
Los pasos necesarios en HP-UX son como sigue. El parametro +z hace que el compilador de C de
HP-UX produzca el denominado "Codigo independiente de la posición", ("Position Independent
Code", PIC), y el parametro +u elimina algunas restricciones que normalmente son necesarias
en la arquitectura PA-RISC. El fichero objeto ha de convertirse en una biblioteca compartida
usando el editor de enlazado de HP-UX, con la opcion -b. Todo esto suena complicado, pero
en realidad es mu simple, dado que los comandos para hacer todo esto son:
# simple HP-UX example
% cc +z +u -c foo.c
% ld -b -o foo.sl foo.o
|
Como los ficheros .so mencionados en la anterior subsección, hay que indicarle a la orden
de creación de funciones que fichero es el que hay que cargar (por ejemplo, puede darle la
localización de la biblioteca compartida, o fichero .sl). Bajo SunOS 4.x es algo así:
# simple SunOS 4.x example
% cc -PIC -c foo.c
% ld -dc -dp -Bdynamic -o foo.so foo.o
|
y bajo Solaris 2.x es:
# simple Solaris 2.x example
% cc -K PIC -c foo.c
% ld -G -Bdynamic -o foo.so foo.o
|
o
# simple Solaris 2.x example
% gcc -fPIC -c foo.c
% ld -G -Bdynamic -o foo.so foo.o
|
Cuando enlace bibliotecas compartidas, puede tener que especificar bibliotecas compartidas
adicionales (normalemente bibliotecas de sistema, como las bibliotecas de C y matemáticas)
en la linea de ordenes de ld