# Linux und g++ - Shared Library statisch einbinden?



## DerSieger (28. Mai 2005)

Hallo,
ich würde gerne wissen ob es möglich ist, shared librarys unter Linux mit g++ statisch einzubinden. Das Ziel ist also, dass der auf meinem Linux Rechner (auf dem sich natürlich die nötigen Librarys befinden) compilierte Sourcecode auf anderen Linux Rechnern (die diese Libs evtl. nicht besitzten) läuft ohne das ich erneut Compilieren muss bzw. sogar die Libs erst auf jedem Rechner installieren muss (was ich im speziellen aufgrund fehlender root Rechte nicht kann). Ist soetwas möglich und falls ja wie?

Danke für alle Antworten...


----------



## KristophS (29. Mai 2005)

Ist das nicht, durch setzen des Schalter -l<name> möglich? Wobei "l" lib ersetzt? Ansonsten würde ich dir man g++ bzw. help g++ empfehlen.


----------



## Daniel Toplak (29. Mai 2005)

Wenn du zu den shared Libs auch statische libs hast meist "libname.a" dann link diese dazu.
Was mit -lname passiert.
Sollten allerdings beide da sein, also shared und static, dann dürfte die Option "-static" helfen. Siehe hierzu man-Pages von gcc.

Gruß Daniel


----------



## DerSieger (29. Mai 2005)

Danke für die Tipps. Also -I dient eigentlich nur zur Angabe eines Verzeichnisses in dem nach den Include-Dateien gesucht werden soll. Das mit dem -static habe ich auch schon mal ausprobiert, die .a Dateien sind auch da, nur liefert das Ganze einen Abbruch.

Im Speziellen geht es hauptsächlich um die libpq, kennt sich jemand damit aus wie ich die statisch rein compiliere (habe es per "g++ test.cpp -I/usr/include/pgsql -lpq -static" versucht). Bei mir (habe es auf einem Debian 3.1 und Suse 9.3 versucht) ensteht dabei eine Liste von Fehlern wie ": undefined reference to '****'".


----------

