zeckensack
2006-04-23, 15:52:06
Ist quasi peinlich.
Wenn ich ein einzelne .o-Datei habe ist es ganz leicht.
ar -r libpeter.a peter.oDann habe ich eine lib, die auch tatsächlich funktioniert. Ich kann sie zu Projekten hinzulinken und alles ist so weit prima.
Aber was mache ich wenn ich mehrere .o-Dateien habe, die erst zusammengenommen die Lib bilden?
Ich habe konkret einige .o-Dateien die Kompilate von Quellcode sind, und einige andere Dateien die durch objcopy erzeugt wurden. Demzufolge würde "Zusammenschmeißen des Quellcodes in eine Datei" gar nicht gehen, mal ganz davon abgesehen dass die Struktur/Wartbarkeit darunter auch leiden würde.
Die durch objcopy erzeugten .o-Dateien sind private Daten der Lib. Die Symbole die darin definiert sind sollen ~"statisch" zu dem Kompilat gelinkt werden, aber die Lib soll sie nicht exportieren.
Von daher bin ich höchst unzufrieden mit dem Ergebnis das ich erhalte wenn ich einfach alle .o-Dateien an ar übergebe. Da sind fürchterlich viele überflüssige Symbole exportiert, die auch nicht nachträglich entfernbar sind. Dann könnte ich das ganze gleich liblinkerfehler.a nennen ;)
Dass man nachher mit nm daran rumbasteln kann, und quasi sieht wie die Lib strukturiert ist, stört mich garnicht mal so sehr. Aber es ist eben höchst unfein damit völlig unnötige Namenskollisionen zu riskieren.
Ich steh' da irgendwie auf dem Schlauch, es ist auch nicht wahnsinnig wichtig im Moment, da ich so nur in meiner Bastelwut einen Text-Renderer Libifizieren wollte, aber es nervt mich dass ich das nicht hinkriege, und es könnte irgendwann noch wichtig werden.
Wenn ich ein einzelne .o-Datei habe ist es ganz leicht.
ar -r libpeter.a peter.oDann habe ich eine lib, die auch tatsächlich funktioniert. Ich kann sie zu Projekten hinzulinken und alles ist so weit prima.
Aber was mache ich wenn ich mehrere .o-Dateien habe, die erst zusammengenommen die Lib bilden?
Ich habe konkret einige .o-Dateien die Kompilate von Quellcode sind, und einige andere Dateien die durch objcopy erzeugt wurden. Demzufolge würde "Zusammenschmeißen des Quellcodes in eine Datei" gar nicht gehen, mal ganz davon abgesehen dass die Struktur/Wartbarkeit darunter auch leiden würde.
Die durch objcopy erzeugten .o-Dateien sind private Daten der Lib. Die Symbole die darin definiert sind sollen ~"statisch" zu dem Kompilat gelinkt werden, aber die Lib soll sie nicht exportieren.
Von daher bin ich höchst unzufrieden mit dem Ergebnis das ich erhalte wenn ich einfach alle .o-Dateien an ar übergebe. Da sind fürchterlich viele überflüssige Symbole exportiert, die auch nicht nachträglich entfernbar sind. Dann könnte ich das ganze gleich liblinkerfehler.a nennen ;)
Dass man nachher mit nm daran rumbasteln kann, und quasi sieht wie die Lib strukturiert ist, stört mich garnicht mal so sehr. Aber es ist eben höchst unfein damit völlig unnötige Namenskollisionen zu riskieren.
Ich steh' da irgendwie auf dem Schlauch, es ist auch nicht wahnsinnig wichtig im Moment, da ich so nur in meiner Bastelwut einen Text-Renderer Libifizieren wollte, aber es nervt mich dass ich das nicht hinkriege, und es könnte irgendwann noch wichtig werden.