Compiler g++ : alles einbinden
-
Wie erreiche ich, dass der g++-Compiler alle notwendigen
Libraries einbindet, also nicht dynamisch linkt ?
Ich habe es mit dem Parameter -static versucht,
aber trotzdem erhielt ich hinterher auf einem anderen Linux-System
beim Starten meines Programms die Fehlermeldung, dass eine qt3-Library nicht gefunden wurde.
-
Die Bibliotheken, die statisch verlinkt werden sollen, müssen auch als statisch verlinkbare Bibliotheken vorliegen. Viele Bibliotheken werden aus Platzgründen nur in der dynamisch verlinkbaren Version installiert.
aber trotzdem erhielt ich hinterher auf einem anderen Linux-System
beim Starten meines Programms die Fehlermeldung, dass eine qt3-Library nicht gefunden wurde.Damit dir das nicht nochmal passiert, kannst du mit dem Kommando ldd nachschauen, welche Shared Objects dein Binary braucht.
-
ldd hat u.a. gemeldet dass libqt.so.3 benötigt wird.
Woran erkenne ich, ob eine Bibliothek als statisch bei mir installiert ist
oder nicht ?
-
Falsch.
Also nochmal:
waron erkenne ich, ob eine Bibliothek in der statisch verlinkbaren Form bei mir vorliegt ?
-
foo.so(.version) ist die dynamische Version, foo.a die statische.
-
ok.
Und für Qt3 bekomme ich dies nur, wenn ich eine Lizenz kaufe ??
(ich habe in meiner Suse-Distri 9.1 nichts entsprechendes gefunden)
-
Du kannst qt mit -static configuren.
-
Wie meinst du das ??
Die Library neu compilieren, oder ????
-
Ja.
-
Kannst du mir bitte beschreiben wie das geht ?
Ich hab so etwas noch nie gemacht.
-