www.wikidata.de-de.nina.az
Eine Programmbibliothek kurz Bibliothek englisch library kurz lib bezeichnet in der Programmierung eine Sammlung von Unterprogrammen routinen die Losungswege fur thematisch zusammengehorende Problemstellungen anbieten Bibliotheken sind im Unterschied zu Programmen keine eigenstandig lauffahigen Einheiten sondern sie enthalten Hilfsmodule die von Programmen angefordert werden In erweitertem Sinn gelten als Programmbibliotheken zum Teil auch Komponentenbibliothek oder Klassenbibliothek genannt alle Arten von Bibliotheken die Programmcode bestandteile bereitstellen enthalten Insofern unterscheidet man Programmbibliotheken u a nach dem Typ des Programmcodes z B Quelltexte Makros Object oder Bytecode Maschinencode usw Dementsprechend werden Bibliotheken zu unterschiedlichen Zeitpunkten benutzt manche nur im Rahmen der Softwareentwicklung von Werkzeugen der Entwicklungsumgebung andere nur zur Ausfuhrung von Programmen wieder andere als Mischform von beiden Solche Bibliotheken enthalten haufig nicht nur Unterprogramme sondern Programmcodeteile aller Programm Typen Eine besondere Form von Programmbibliotheken sind Frameworks Inhaltsverzeichnis 1 Zugriff 2 Speicherungsformen 3 Statische Bibliotheken 4 Dynamische Bibliotheken 5 Beispiele 6 Bibliotheken in verschiedenen Programmiersprachen 6 1 Java 7 Bibliotheken bei verschiedenen Betriebssystemen 7 1 Windows 7 2 Unixartige Systeme 7 3 Bibliotheken unter z OS 7 4 Bibliotheken unter Amiga OS 8 Weblinks 9 EinzelnachweiseZugriff BearbeitenMogliche Zugriffe auf Funktionen einer Programmbibliothek sind durch die Programmierschnittstelle API definiert Dabei handelt es sich um die Gesamtheit der offentlich verfugbaren Funktionen und Klassen in Abgrenzung zu den privaten Einheiten der Bibliothek die nicht zuganglich sind Manche proprietaren Programmbibliotheken werden nicht im Quelltext veroffentlicht da sie Firmengeheimnisse darstellen Zum Schutz gegen Dekompilieren wird dann oft ein Obfuscator eingesetzt sowie alle Symbole Variablen und Sprungadressnamen entfernt Speicherungsformen BearbeitenProgrammbibliotheken und ihre Inhalte konnen abhangig vom Betriebssystem und der Entwicklungsumgebung in unterschiedlichen Formen und Strukturen gespeichert werden zum Beispiel Die Bibliothek ist ein Dateiverzeichnis a ihre Elemente Komponenten sind einzelne Dateien a Die Bibliothek ist eine Datei a die darin enthaltenen Komponenten werden von den Programmen der Entwicklungsumgebung oder einer speziellen Bibliotheksverwaltungssoftware identifiziert und verarbeitet Beispiele Eine sogenannte DLL bei Microsoft oder eine PO Datei bei IBM Grossrechnern als Bibliothek fur Quelltexte Objektmodule oder ausfuhrbare Lademodule Unterschiedliche Arten von Bibliotheken werden in einer gemeinsamen Datei a verwaltet die Entwicklungsumgebung kann dies unterscheiden verarbeiten Beispiel Eine MDB bei MS Access enthalt Bibliotheken mit Quellcode Makros vorubersetztem Pseudocode und anderen Codetypen Es existiert keine Bibliothek die Komponenten werden als einzelne Dateien gespeichert und ausgefuhrt z B als EXE Dateien a verwaltet vom ublichen Dateiverwaltungssystem des BetriebssystemsStatische Bibliotheken Bearbeiten Statische Bibliothek wird eine Programmbibliothek genannt die Module Unterprogramme enthalt die durch einen so genannten Linker von englisch to link verknupfen mit dem Kompilat eines anderen Programms verbunden werden Dabei erzeugt der Linker in der Regel fur ein Hauptprogramm eine ausfuhrbare Datei oder je nach Betriebssystem ein Lademodul in einer Ladebibliothek in der die von diesem aufgerufenen Module fest statisch eingebunden angehangt sind Ein optimierender Linker sucht aus den zugeordneten Objekt Modulen Bibliotheksdateien nur jene Komponenten Unterprogramme oder Daten heraus die vom Programm auch tatsachlich aufgerufen referenziert werden und fur die es im Programm keine uberschreibende Implementierung gibt und hangt sie dann an das Programm an Die so entstehende Datei wird entsprechend grosser Einfache Linker fugen einfach das komplette Objekt Modul bzw die komplette Bibliothek hinzu und vergrossern das Programm dadurch noch mehr Eine statische Bibliothek ist im Allgemeinen selbst Ergebnis aus Quelltexten aufgeteilt in mehrere Module deren Kompilate Objektmodule dann vom Linker zu der Bibliothek zusammengefugt wurden Dynamische Bibliotheken BearbeitenAus dynamischen Bibliotheken werden Komponenten erst wahrend der Laufzeit eines Programms uber einen sogenannten Lader in den Arbeitsspeicher geladen Das geschieht entweder durch eine explizite Anweisung durch das Programm oder implizit durch einen so genannten Laufzeit Lader wenn das Programm dynamisch gebunden wurde Heutzutage geschieht dies meist mit Betriebssystem Unterstutzung da siehe unten dynamische Bibliotheken gesondert behandelt werden bzgl Swapping und Einblendung in den Programm Adressraum Der Lader ist somit heute meist zu weiten Teilen eine Betriebssystem Komponente Dynamisch gebundene Programme mussen sich um das Laden der benotigten dynamischen Komponenten nicht selbst kummern Beim dynamischen Binden werden Bibliothek und Kompilat nur lose verknupft Statt die notwendigen Symbole Variablen und Sprungadressnamen zu kopieren wie beim statischen Binden der Fall werden sie nur referenziert Um das Laden der dynamischen Bibliotheken und Suchen der Symbole kummert sich ein sogenannter Laufzeit Binder Das Auflosen der referenzierten Symbole geschieht entweder sofort noch vor Start des eigentlichen Programms bzw beim Laden aus der Bibliothek oder lazy faul bei der ersten Verwendung des Symbols Ein typischer Anwendungsfall dafur Bibliotheken explizit zu offnen die Adresse von Symbolen nach deren Namen zu suchen um das Symbol zu verwenden sind Plug in Architekturen Ein weiteres Szenario ist eine optionale Bibliothek die verwendet wird falls vorhanden deren Fehlen aber keinen Fehler darstellt Ein Vorteil von dynamischen Bibliotheken ist dass Programme die eine dynamische Bibliothek verwenden von Fehlerbehebungen in der Bibliothek profitieren ohne neu ubersetzt werden zu mussen Wird beispielsweise ein Fehler in der OpenSSL Bibliothek gefunden und behoben die entsprechende Bibliothek wurde ersetzt so genugt ein Neustart der Programme die diese Bibliothek verwenden um den Fehler auch in diesen Programmen zu beheben Da die Dateien in denen dynamische Bibliotheken gespeichert werden bei der Benutzung nur gelesen und ausgefuhrt aber nicht verandert werden mussen Betriebssysteme mit virtuellem Speicher dynamische Bibliotheken nur einmal laden und konnen sie dann in den Adressraum aller verwendenden Prozesse einblenden Dies ist beispielsweise bei Multitasking Systemen vorteilhaft wenn die Bibliotheken insgesamt sehr gross sind und von vielen Prozessen gleichzeitig verwendet werden Sollte die dynamische Bibliothek Zustande oder gespeicherte Daten besitzen kann dies mit Copy On Write abgefangen werden Viele moderne Betriebssysteme laden die dynamischen Bibliotheken jedoch nicht sofort sondern blenden sie bei Bedarf direkt von der Festplatte aus ein sie werden wie ausgelagerte Pages behandelt Analog werden nicht benotigte Pages die zu einer dynamischen Bibliothek gehoren und nicht verandert wurden einfach verworfen Bei Bedarf konnen sie ja aus der Festplatte wieder geladen werden Beispiele BearbeitenProgrammbibliotheken stellen Komponenten in bestimmten Zusammenhangen bereit zu denen sie bezuglich ihrer Konstruktion und ihrer Schnittstellen passen mussen Dementsprechend gibt es Programmbibliotheken zum Beispiel in folgenden Zusammenhangen Funktionen des Betriebssystems Weitere System und Dienstprogramme Teilkomponenten von Entwicklungsumgebungen und Programmiersprachen Komponenten von Standardsoftware Produkten Komponenten von Individualsoftware die von den Anwendern in individuell festgelegten Bibliotheken verwaltet werden GUI Toolkits zum Erstellen grafischer BenutzeroberflachenBibliotheken in verschiedenen Programmiersprachen BearbeitenBibliotheken in Programmiersprachen enthalten Dienste die nicht im Compiler implementiert sind sondern in der Sprache selbst programmiert sind und mit dem Compiler zusammen oder vollig von ihm getrennt dem Programmierer zur Verfugung stehen Im ersten Fall ist die Bibliothek meist in der Sprachbeschreibung festgelegt Im zweiten Fall spricht man von einer externen Bibliothek In der Sprachbeschreibung festgelegte Bibliotheken unterscheiden sich teilweise stark im Umfang Sprache Teile Pakete Header Klassen Funktionen Methoden KonstruktorenC C89 Amendments 1 18 142C C99 1 24 482C 1 32 18 C89 Java 2 JDK 1 2 62 1 287 18 000Java 6 202 3 850 21 881 Net 1 0 41 3 581 35 470 Net 1 1 43 3 818 37 556 Net 2 0 51 7 419 74 607 Net 3 0 80 10 639 102 613 Net 3 5 98 11 417 109 657Java Bearbeiten Java ist eine eigene Plattform und verwendet ein Bibliothekskonzept welches nicht an das Betriebssystem gebunden ist Im Grunde wird nicht zwischen Programm und Bibliothek unterschieden Alle Klassen liegen kompiliert in Form von class Dateien vor und werden bei Bedarf geladen In der Regel sind Bibliotheken wenn sie aus mehreren Klassen bestehen in einem Java Archiv zusammengefasst Die Java API selbst liegt ebenfalls in Form von Java Archiven vor Da die einzelnen Klassen einer Bibliothek erst zur Laufzeit geladen werden kann es bei der ersten Verwendung zu Verzogerungen kommen bis die Klasse geladen und initialisiert wurde In Java fur Echtzeitsysteme aber auch in Java SE kann der Klassenlader durch entsprechende Methodenaufrufe bestimmte oder alle notwendigen Bibliotheken beim Starten laden und sie auch nicht mehr entladen so dass bei der Benutzung keine unerwartete Verzogerung entsteht Bibliotheken bei verschiedenen Betriebssystemen BearbeitenWindows Bearbeiten Bei den Betriebssystemen Windows und OS 2 wird eine Bibliotheksdatei die dynamisch bindet als DLL fur Dynamic Link Library bezeichnet Entsprechend haben diese Dateien meist die Dateiendung dll Ihr Dateiformat ist New Executable 16 Bit Linear Executable 32 Bit OS 2 oder Portable Executable 32 bzw 64 Bit Windows Unter Windows wird zwischen mehreren Arten von DLLs unterschieden Einsprungs DLL ActiveX DLL NET Assembly CLI Windows Metadata CLI Dateiendung winmd Einsprungs DLLs enthalten hierbei Funktionen wahrend ActiveX DLLs Klassen enthalten DLLs bis Windows 98 und Windows NT 4 0 konnen nicht kontrolliert werden jedes Programm darf sie austauschen und kann dem Betriebssystem damit moglicherweise Schaden zufugen Windows Me Windows 2000 und die Folgeversionen verfugen uber einen Systemschutz der auch die DLLs einbezieht Vorteile Ausser Code konnen auch Daten zum Beispiel Dialog Ressourcen von mehreren Prozessen gemeinsam genutzt werden DLLs werden haufig statisch verlinkt konnen aber auch dynamisch verlinkt werden Dynamisch heisst hier dass die DLL explizit vom Programm zur Laufzeit geladen wird und die Funktionen die sich in der DLL befinden per Hand mit dem Programm verbunden werden Dadurch wird es moglich durch Austauschen der DLL die Funktionalitat des Programms zur Laufzeit zu verandern DLLs konnen unabhangig vom Hauptprogramm gewartet werden Das heisst Funktionen in der DLL konnen ohne Wissen des Programms verandert werden Danach wird die DLL einfach ausgetauscht die alte DLL Datei wird uberschrieben ohne dass das Hauptprogramm verandert werden muss Da die DLL als unabhangige Datei dem Hauptprogramm beiliegen muss konnen Anbieter von Programmcode besser sicherstellen dass Programmierer die die Funktionen ihrer DLL nutzen dafur auch bezahlen Die Funktionalitat der DLL verschwindet so nicht wie bei einer Library im Code des Programms Dieser Vorteil wird von Befurwortern freier Software als Nachteil gesehen Nachteile Anderungen in DLLs ziehen oft auch Anderungen im Programm nach sich Dadurch kommt es leicht zu Versionskonflikten die oft nur sehr schwer aufzuspuren sind Eine der Grundideen der DLLs war Programmcode zwischen mehreren Programmen zu teilen um so Speicher zu sparen In der Praxis ist es jedoch dazu gekommen dass viele Programme bei der Installation DLLs in das Windows Systemverzeichnis schreiben die ausser diesem speziellen Programm kein anderes benutzen kann Ausserdem ist die Entwicklung und insbesondere die Anbindung im Vergleich aufwandiger als zur statischen Bibliothek Praktisch hat dies jedoch keine Bedeutung mehr da seit mindestens Windows 2000 die allermeisten Applikationen private Bibliotheken 1 mit ihrer Installation mitfuhren also ein Versionskonflikt im Sinn eines DLL Konflikts ausgeschlossen ist Unter Windows haben Bibliotheken die im Programmordner der Anwendung abgelegt sind eine hohere Prioritat als die systemweit verfugbaren 2 Unixartige Systeme Bearbeiten Auf unixartigen Betriebssystemen wie z B Linux verwenden statische Bibliotheken den Dateisuffix a von Archiv und konnen mit den UNIX Programmen ar und nm angesehen und bearbeitet werden Bei Systemen die eine Paketverwaltung anbieten befinden sich statische Bibliotheken oft zusammen mit den Header Dateien in einem separaten Entwicklungs Paket Fur dynamische Bibliotheken ist die Bezeichnung shared library englisch fur gemeinsam genutzte Bibliothek gebrauchlich Sehr verbreitet ist das Executable and Linking Format ELF das Standard Format unter anderem von Linux FreeBSD und Solaris Fur diese Dateien hat sich die Endung so von shared object gemeinsam genutztes Objekt etabliert In der Regel folgt dem Bibliotheksnamen noch die Versionsnummer der Binarschnittstelle ABI version so dass mehrere Versionen einer Bibliothek gleichzeitig installiert sein konnen Meta Informationen zu einem vorliegenden so konnen bspw mit readelf abgefragt werden Shared libraries beginnen auf Linux mit Ausnahme einiger Low Level Bibliotheken ublicherweise mit dem Prafix lib Die eigentliche Bibliotheksdatei enthalt die volle Versionsnummer Symbolische Verknupfungen ermoglichen den Zugriff uber den so Namen sowie den Zugriff ganz ohne Versionsangabe Beispiel libfoo so gt libfoo so 1 libfoo so 1 gt libfoo so 1 2 3 libfoo so 1 2 3Der so Name ist in dem Fall libfoo so 1 Die Zahl nach so andert sich nur dann wenn sich in einer neuen Version die Schnittstelle der Bibliothek andert Der Laufzeit Linker wahlt anhand von Versions Informationen im auszufuhrenden Programm bzw in der zu ladenden Bibliothek eine Version mit einer kompatiblen Schnittstelle aus Da sowohl Programme von Bibliotheken abhangen konnen als auch Bibliotheken von weiteren Bibliotheken kann eine Software indirekt von vielen Bibliotheken abhangen Da viele Unixoide Systeme die Bibliotheken zentral fur Betriebssystem und Applikation zusammen verwalten existieren Paketverwaltungen die Abhangigkeiten berechnen und benotigte Bibliotheken automatisch installieren konnen Beispiele fur derartige Paketverwaltungs Systeme sind APT und YUM Von welchen Bibliotheken ein Programm direkt abhangt lasst sich auf einigen Systemen mit Hilfe des UNIX Programms ldd herausfinden Bei Software die in der Binarversion vertrieben werden soll beispielsweise kommerzielle Closed Source Software oder portable distributionunabhangige Software muss gewahrleistet werden dass alle benotigten Bibliotheken vorliegen Das Anwendersystem auf dem diese Software verwendet werden soll muss dann als kompatible Binarplattform agieren konnen Dies kann folgendermassen geschehen Angabe einer oder mehrerer kompatibler Betriebssystem Distributionen zum Beispiel Lauffahig unter Debian 5 0 Lenny Verwendung eines distributionsspezifischen Paketes so dass benotigte Bibliotheken vom Paketmanager nachgeladen werden Nachteil ist der enorme Aufwand der Bereitstellung eines Paketes fur die vielen existierenden Distributionen 3 4 Mitliefern aller dynamischen Bibliotheken Diese werden zusammen mit dem Programm Dokumentation usw in ein separates Verzeichnis kopiert um nicht mit Versionen die von der Paketverwaltung systemweit installiert wurden zu kollidieren Anschliessendes Anpassen des Bibliothekensuchpfads fur das Programm mit LD LIBRARY PATH uber ein Skript oder handisch 5 Verzicht auf dynamische Bibliotheken und Statisches Linken was aber technisch schwierig ist 6 7 oder durch Lizenzkonflikte verhindert werden kann Ausserdem verliert man damit Distribution basierenden Updatesupport 8 Uber private Bibliotheken 1 die uber einen relativen Bibliothekspfad eingebunden werden Hierzu muss die Applikation mit der Linker Option ORIGIN erzeugt werden 5 Objekt und komponentenorientierte Ansatze konnen hier realisiert werden indem in einer Funktion das entsprechende Objekt oder die Komponente instantiiert und zuruckgegeben werden Vorteile Gemeinsame Nutzung von Ressourcen Vermeidung von redundanten privaten Libraries Eine enorme Anzahl von freien und mitgelieferten Bibliotheken stehen zur Verfugung Bibliotheken konnen unabhangig vom Hauptprogramm ausgebessert werden 8 und Programmupdates werden kleiner Optimierungen an einer Stelle konnen das ganze System beschleunigen Konnen schnell veranderliche Systemaufrufe verbergen Abstrahieren von low level ProblemenNachteile Probleme in essentiellen Bibliotheken machen Systeme unbenutzbar Durch entsprechende Skripte der Paketverwaltung ist bei modernen Distributionen jedoch meist sichergestellt dass dies nicht passieren kann Bei inkompatiblen Veranderungen der Binarschnittstelle mussen alle abhangigen Programme neu kompiliert werden Durch Versionsnummern und parallele Verwendung von Paketen reduziert sich das Problem der Binarkompatibilitat wird jedoch nicht gelost 9 Bei inkompatiblen Veranderungen der Programmierschnittstelle mussen alle abhangigen Programme entsprechend angepasst werden Die Erstellung portabler oder distributionsubergreifender Programme wird schwieriger 10 11 Bibliotheken unter z OS Bearbeiten Bei z OS wie auch in den Vorgangersystemen System 360 und System 390 werden wurden Programmbibliotheken wie alle Arten von Bibliotheken in der Form von Partitioned Data Sets PDS gefuhrt Je Programmcode Typ siehe unten werden i d R eigene Bibliotheken benutzt und deren Elemente typneutral als Member bezeichnet Die Members werden von verschiedenen Systemprogrammen der Entwicklungsumgebung dort eingestellt und von dort verwendet Je Programmcode Typ wird je nach Bedarf eine 1 Bibliothek fur ein ganzes Unternehmen je Unternehmensbereich oder fur bestimmte Anwendungsgebiete verwendet Die Unterscheidung der Eintrage erfolgt uber den Membernamen Es werden zum Beispiel folgende Arten von Programmbibliotheken benutzt nbsp Code Bibliothekstypen z B bei z OS mit 3GL Sprache Quelltextbibliotheken Diese enthalten den Quellcode von Programmen oder Unterprogrammen d h Deklarationen Funktionen und je nach Programmiersprache andere Codeteile Besondere Auspragungen von Quelltexten werden oft in getrennten Bibliotheken verwaltet Beispiele sind Copybook Bibliotheken sie enthalten Fragmente von Quellcode zum Beispiel Datendeklarationen fur bestimmte Datensatz Arten oder funktionale Codeteile zur Verwendung in vielen Programmen Makrobibliotheken enthalten zum Beispiel fur die Assemblersprache die Anweisungen durch die beim Assemblieren der Makroaufruf in ASSemblercode umgewandelt und im Quellcode eingefugt wird Die Eintrage in Quelltextbibliotheken werden ublicherweise mithilfe von Texteditoren erzeugt und geandert sowie von Compilern Assemblern als Input benutzt um kompilierten Programmcode zu erzeugen In Objektcode Bibliotheken werden von den Ubersetzern Objektmodule eingestellt je Kompilierung in der Regel ein Modul Diese Module sind der Input fur das anschliessend erforderliche Linken oder Binden dem auch Linkage Editor genannten Systemprogramm wird diese Bibliothek als SYSLIB bekanntgegeben Beim Binden entstehen sogenannte Lademodule die in einer Ladebibliothek u a auch Core Image Library genannt eingestellt werden Ladebibliotheken konnen unternehmensweit in nur einer gemeinsamen Bibliothek alle Programm Typen enthalten oder wahlweise und in der Regel in getrennten Bibliotheken die per JCL aufzurufenden Hauptprogramme bzw die per Load Befehl individuell nachzuladenen Unterprogramme aufnehmen Zur Ausfuhrung werden evtl unterschiedliche Bibliotheken uber die STEPLIB oder die JOBLIB oder die LINKLIST Angabe zugeordnet und die einzelnen Module daraus vom Betriebssystem geladen Bibliotheken unter Amiga OS Bearbeiten Beim AmigaOS werden alle Bibliotheken als shared Library verwendet Sie werden also zur Laufzeit vom Programm beim System angefordert das dann die Basisadresse der Bibliothek im Speicher bis OS3 9 oder die entsprechende Schnittstelle ab OS4 0 zur Verfugung stellt Das Programm verwendet dann relative Adressen um uber eine Sprungtabelle vor der Basisadresse an die eigentlichen Funktionen hinter der Basisadresse zu kommen Diese Funktionen sind eintrittsinvariant reentrant Selbst bei Anderungen der Bibliothek sind die bestehenden Eintrage der Sprungtabellen immer gleich Es kommen ggf lediglich neue Eintrage hinzu am Ende der Tabellen Somit ist eine Abwartskompatibilitat gegeben Als Besonderheit kann bei AmigaOS beim Offnen einer Library eine Mindest Versionsnummer angegeben und so sichergestellt werden dass eine gewunschte Funktionalitat auch wirklich verfugbar ist Wird diese Version nicht vorgefunden kann das aufrufende Programm sicher auf eine einfachere Funktionalitat wie sie in der alteren Library Version bereitgestellt wird zuruckschalten Bibliotheksdateien tragen die Endung library und befinden sich meist im Verzeichnis LIBS der Systempartition Das Betriebssystem uberpruft bei der Suche nach einer Bibliothek auch das Programmverzeichnis des anfragenden Programms Weblinks Bearbeiten nbsp Wiktionary Programmbibliothek Bedeutungserklarungen Wortherkunft Synonyme Ubersetzungen Mike Hearn Writing shared libraries Fallstricke und Best Practices der Erstellung von ELF Bibliotheken 2004 englisch Einzelnachweise Bearbeiten a b Rick Anderson The End of DLL Hell microsoft com 11 Januar 2000 archiviert vom Original am 5 Juni 2001 abgerufen am 15 Januar 2012 Private DLLs are DLLs that are installed with a specific application and used only by that application Vorlage Cite web temporar Arnaud Desitter Using static and shared libraries across platforms Row 9 Library Path ArnaudRecipes 20 Juli 2011 archiviert vom Original am 20 Juli 2011 abgerufen am 26 Januar 2012 englisch win32 runtime library path and then PATH Eric Brown LSB 4 0 certifications aim to heal Linux fragmentation linuxfordevices com 8 Dezember 2010 archiviert vom Original am 24 Dezember 2013 abgerufen am 16 November 2011 englisch LSB helps to reduce fragmentation it does not eliminate it The issue of packaging and broader dependencies is still a big one for me at least writes Kerner The same RPM that I get for Fedora won t work on Ubuntu and Ubuntu DEB packages won t work on SUSE etc etc nbsp Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot archive linuxgizmos com Eskild Hustvedt Playing well with distros Linux Game Publishing 24 November 2009 archiviert vom Original am 21 September 2011 abgerufen am 15 Januar 2012 englisch a b Eskild Hustvedt Our new way to meet the LGPL 8 Februar 2009 archiviert vom Original am 13 April 2014 abgerufen am 9 Marz 2011 englisch You can use a special keyword ORIGIN to say relative to the actual location of the executable Suddenly we found we could use rpath ORIGIN lib and it worked The game was loading the correct libraries and so was stable and portable but was also now completely in the spirit of the LGPL as well as the letter Evan Jones Portable Linux Binaries 13 Februar 2008 abgerufen am 10 Januar 2012 englisch Linux is not well known for its binary portability Libraries vary from system to system and the kernel interfaces have a tendency to change Recently I needed to build a binary on one system and run it on another It only used standard C library functions so I expected it to be easy It was not Christoph Baus Yet another Unix nightmare statically linking libstdc 31 Mai 2005 archiviert vom Original am 10 Februar 2010 abgerufen am 15 Januar 2012 englisch a b Ulrich Drepper Static Linking Considered Harmful redhat com archiviert vom Original am 27 Mai 2010 abgerufen am 13 Januar 2012 englisch There are still too many people out there who think or even insist that static linking has benefits This has never been the case and never will be the case Mike Hearn Random Collection of Current Linux Problems Binary Portability Autopackage org 2006 archiviert vom Original am 18 Mai 2009 abgerufen am 23 Januar 2012 englisch This page was prepared for the OSDL meeting in December 2005 It describes many of the problems inherent to Linux we ve encountered whilst distributing complex software in binary form to end users It also offers a few suggestions for improvements Troy Hepfner Linux Game Development Part 2 Distributable Binaries gamedev net 1 Oktober 2007 archiviert vom Original am 13 Oktober 2007 abgerufen am 19 Dezember 2011 englisch Creating an executable that works on almost all Linux distributions is a challenge There are a number of factors that contribute to the problem Simon Peter AppImageKit Documentation 1 0 PDF 38 kB PortableLinuxApps org 2010 S 2 3 archiviert vom Original am 29 November 2010 abgerufen am 29 Juli 2011 englisch Not easy to move an app from one machine to another nbsp Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot portablelinuxapps org Normdaten Sachbegriff GND 4121521 7 lobid OGND AKS Abgerufen von https de wikipedia org w index php title Programmbibliothek amp oldid 235320805