Diskussion:Lib (Dateierweiterung)

Letzter Kommentar: vor 10 Jahren von Gutschi in Abschnitt Überarbeitung

das stimmt so nicht

Bearbeiten

Das stimmt so nicht. Den Dateityp sollte man einfach nicht an der Dateiendung festmachen. Der Lib-Dateityp stimmt so auch nur bei MSVC, wo aber in LIB Dateien auch nicht nur Funktionen/etc. von DLLs drin stehen, sondern eben auch statische Bibliotheken. Wenn schon ein Artikel dafür, dann wenigstens auch mit den ganzen anderen Formaten (ELF (.o), etc.)

Hab nur leider momentan keine Zeit das zu ändern, eigentlich würde ich sogar löschen vorschlagen. -- LittleFox 18:09, 15. Sep. 2011 (CEST) (ohne Benutzername signierter Beitrag von Moritz94 (Diskussion | Beiträge) )


Ich versuche es mal so

Bearbeiten

Eine Lib Datei kann man sich (ohne auf Compiler Eigenheiten einzugehen) als eine vorkompilierte Funktionsbibliothek vorstellen. Auf die dort enthaltenen Methoden kann aus dem eigenen Programm zugegriffen werden. Allerdings müssen Bibliothek und Programm miteinander verbunden werden, die Bibliothek (LIB) muß also in das Programm eingebunden werden. Das geschieht über den Linker, er "schweißt" die eigenen *.OBJ Dateien und die Bibliotheken *.lib zu einem danach ausführbaren Programm zusammen.

Besonderheit Microsoft DLLs Nun gibt es bei Microsoft noch die DLLs, die nichts anderes sind als die oben angesprochenen LIBs - jedoch sind sie nicht über den Linker fest in das Programm eingebunden, sondern sie sind dynamisch. Das bedeutet sie sind nicht statisch in das Programm eingebunden, sondern werden erst zur Laufzeit bereit gestellt (DLL = Dynamic Link Library). Der eigentliche Code der Bibliothek ist demnach in der DLL enthalten und nicht mehr in der LIB Datei. Da aber es aber Standard für Compiler ist mit LIB Dateien zu arbeiten, erstellt der Microsoft Compiler eine leere LIB Datei, die nur eine Hülle der DLL ist. Sie enthält zwar die aufrufbare Funktion, die macht aber rein gar nicht - sie ist nur ein leerer Rumpf. Aber dadurch ist jetzt der Linker in der Lage die OBJ und LIB Dateien zur EXE zu verbinden. Wenn dann zur Laufzeit des Programms die DLL einbindet, dann steht auch die Funktionalität der Bibliothek zur Verfügung. -- daholga 194.172.160.96 16:22, 8. Feb. 2013 (CET)Beantworten

Überarbeitung

Bearbeiten

Ich habe nochmals versucht der Artikel zu Überarbeiten. Hoffentlich ist das ganze nun ein bisschen klarer, bin aber froh wenn jemand anderes noch drüberschaut Gutschi (Diskussion) 10:32, 8. Mär. 2014 (CET)Beantworten