Linux und g++ - Shared Library statisch einbinden?

DerSieger

Grünschnabel
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...
 
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.
 
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
 
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 '****'".
 
Zurück