linux-l: shared vs. static linking

Till Christian Siering till at munin.in-berlin.de
So Jan 4 19:52:19 CET 1998


On Sun, 4 Jan 1998, Michael Wiedmann wrote:

> Wie bringe ich dem gcc bei, dass bestimmte Libs dynamisch, andere jedoch
> statisch gelinkt werden sollen. 
> Ein erster Ansatz:
> 
>    gcc -shared -lxxx -static -lyyy
> 
> fuehrt nur "oberflaechlich" zum Erfolg (soll heissen Linken ohne 
> Fehlermeldung). Der Aufruf des Binaries fuehrt sofort zum core-dump,
> ein "ldd binary" zeigt, dass das Programm angeblich zu sich selbst (!)
> dynamisch gelinkt ist:
> 
>    ./binary => ./binary
>    libxxx.so => /path/to/libxxx.so.1
>    etc.

Soweit ich weis wird durch den Aufruf

    gcc -static -lyyy

explizit statisch und mit dem Aufruf

    gcc -shared -lyyy

explizit dynamisch gelinkt. Ob es geht, in einem Aufruf beides zu machen,
weis ich nicht.

Probier doch mal alle deine Objekte zu erzeugen und dann mit den statisch
zu linkenden Bibliotheken inkrementell zu einem neuen Objekt zu linken
(ld -r -static -o object_new.o object_1.o object_2.o -lstatic_yyy). Aus
dem ganzen Summs wuerde ich dann die ausfuehrbare Datei erzeugen und
mit den benoetigten Shared Libraries dynamisch linken.


Greetings,

    Till!





Mehr Informationen über die Mailingliste linux-l