Am Montag, 21. Juli 2008 12:18 schrieb Philipp Thomas:
* Andre Heine (linux-experience@gmx.net) [20080721 12:08]:
Welche linke ich denn nun? Version der Distri oder Version vom Compiler?
Und was ist, wenn ich gegen Libs linke die mit 'nem anderem Compiler compiliert worden sind. Also ich kompiliere mit dem gcc 3.4.6 gegen libs die mit dem gcc 4.1.2 Compiler erstellt worden sind!?
Statisch linken ist im Grunde kaum noch möglich, erst recht, wenn es sich um C++ Bibliotheken handelt. So funktionieren exceptions z.B. nur, wenn alle Bibliotheken die gleiche dynamische Bibliothek verwenden. Und wenn irgendeine der namensauflösenden Funktionen der glibc (z.B. gethostbyname) verwendet werden soll, *muss* die glibc dynamisch gelinkt werden.
ACK, man bekommt IMHO auch eine Meldung von Linker/Compiler ...
Fazit: zumindest libgcc, libstdc++ und glibc sollten *immer* dynamisch gelinkt werden, was ein Programm für alle SuSE Linux/openSUSE Versionen ausschliesst.
Ok! Das würde ja meine Aussagen erstmal untermauern... Aber wie sieht das aus, wenn ich __alle__ Abhängigkeiten selber kompiliere und die libstdc++.so.6, etc mitliefere und mit LD_LIBRARY_PATH arbeite? AFAIK kann ich alles mitliefern (ausser glibc glaube ich) und ggf. für unser Programm den LD_LIBRARY_PATH verbiegen?? Das OpenOffice RPM von der openoffice.org z.B. liefert die C++ runtime mit. Das könnte klappen, oder??? Viele Grüsse Andre -- "The algorithm to do that is extremely nasty. You might want to mug someone with it." -- M. Devine, Computer Science 340 --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org