Hallo,
man hat mir ja erzählt, dass die Dateien so groß werden, weil eine grosse Bibliothek eingebunden wird. Handelt es sich dabei um das Modul "GPC"?
Wenn ja, kann das wirklich nicht aufgesplittet werden? Ich habe mir die Schnittstelle mal angesehen und da ist nun wirklich weitaus mehr drin, als ich je benutzen werde.
Meiner Meinung nach sollte in einem Modul, das immer eingebunden wird nur das Grundlegendste drin sein. Alles andere kann man dann ja auf Wunsch immer noch einbinden.
On Wed, Jan 29, 2003 at 12:04:11PM +0100, Andreas K. Foerster wrote:
man hat mir ja erzählt, dass die Dateien so groß werden, weil eine grosse Bibliothek eingebunden wird. Handelt es sich dabei um das Modul "GPC"?
Nee, soweit ich das überblicke ist das mehr ein Linkerproblem. Es wird aus verschiedenen Gründen z. B. die Math-Lib mit dem Programm gelinkt. Im Moment läuft auf der GPC Mailingliste ein Diskussionsfaden über linken mit "Shared" Bibliotheken (Dynamisches Linken).
Solange es kein "Smart Linking" (nur die benötigten Funktionen werden eingebunden) beim GNU ld gibt, wird die Dateigröße wohl fortwährend ein Problem bleiben, wobei ich finde, dass dies kein bedeutendes Problem ist.
Eike
Eike Lange schrieb:
On Wed, Jan 29, 2003 at 12:04:11PM +0100, Andreas K. Foerster wrote:
man hat mir ja erzählt, dass die Dateien so groß werden, weil eine grosse Bibliothek eingebunden wird. Handelt es sich dabei um das Modul "GPC"?
Das Modul enthält nur das Interface, die eigentlichen Routinen sind in libgpc.
Nee, soweit ich das überblicke ist das mehr ein Linkerproblem. Es wird aus verschiedenen Gründen z. B. die Math-Lib mit dem Programm gelinkt.
Die ist aber (zumindest auf den meisten Unix-Systemen) dynamisch gelinkt.
Solange es kein "Smart Linking" (nur die benötigten Funktionen werden eingebunden) beim GNU ld gibt, wird die Dateigröße wohl fortwährend ein Problem bleiben, wobei ich finde, dass dies kein bedeutendes Problem ist.
Dass die ld-Entwickler das machen, erscheint unwahrscheinlich, aber es geht evtl. auch anders, indem man vor dem Linken jede Routine in eine eigene Objekt-Datei packt (auf Dateiebene wird nämlich "smart" gelinkt). Mit gewissem Aufwand ist das vermutlich machbar, aber da dieses Problem halt nur für wenige wirklich relevant ist, und es viele andere Dinge zu tun gibt, kann ich nicht sagen, wann ich dazu komme ...
Frank