CINXE.COM

Programmbibliothek – Wikipedia

<!DOCTYPE html> <html class="client-nojs" lang="de" dir="ltr"> <head> <meta charset="UTF-8"> <title>Programmbibliothek – Wikipedia</title> <script>(function(){var className="client-js";var cookie=document.cookie.match(/(?:^|; )dewikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":[",\t.",".\t,"],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"wgRequestId":"543f40e4-cd07-441e-8e56-c2dc1a493ada","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Programmbibliothek","wgTitle":"Programmbibliothek","wgCurRevisionId":246067119,"wgRevisionId":246067119,"wgArticleId":206105,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"], "wgCategories":["Wikipedia:Vorlagenfehler/Vorlage:Cite web/temporär","MediaWiki:Gadget/annotationPair","Programmbibliothek"],"wgPageViewLanguage":"de","wgPageContentLanguage":"de","wgPageContentModel":"wikitext","wgRelevantPageName":"Programmbibliothek","wgRelevantArticleId":206105,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":true,"wgFlaggedRevsParams":{"tags":{"accuracy":{"levels":1}}},"wgStableRevisionId":246067119,"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"de","pageLanguageDir":"ltr","pageVariantFallbacks":"de"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":true,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":30000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true, "wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":true,"wgVector2022LanguageInHeader":false,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q188860","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.gadget.citeRef":"ready","ext.gadget.defaultPlainlinks":"ready","ext.gadget.dewikiCommonHide":"ready","ext.gadget.dewikiCommonLayout":"ready","ext.gadget.dewikiCommonStyle":"ready","ext.gadget.NavFrame":"ready","ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","skins.vector.styles.legacy":"ready","jquery.tablesorter.styles":"ready","ext.flaggedRevs.basic":"ready", "mediawiki.codex.messagebox.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","codex-search-styles":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","mediawiki.page.media","site","mediawiki.page.ready","jquery.tablesorter","mediawiki.toc","skins.vector.legacy.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.flaggedRevs.advanced","ext.gadget.createNewSection","ext.gadget.WikiMiniAtlas","ext.gadget.OpenStreetMap","ext.gadget.CommonsDirekt","ext.gadget.annotationPair","ext.gadget.donateLink","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.compactlinks","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.checkUser.clientHints", "ext.growthExperiments.SuggestedEditSession","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=de&amp;modules=codex-search-styles%7Cext.cite.styles%7Cext.flaggedRevs.basic%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cjquery.tablesorter.styles%7Cmediawiki.codex.messagebox.styles%7Cskins.vector.styles.legacy%7Cwikibase.client.init&amp;only=styles&amp;skin=vector"> <script async="" src="/w/load.php?lang=de&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=de&amp;modules=ext.gadget.NavFrame%2CciteRef%2CdefaultPlainlinks%2CdewikiCommonHide%2CdewikiCommonLayout%2CdewikiCommonStyle&amp;only=styles&amp;skin=vector"> <link rel="stylesheet" href="/w/load.php?lang=de&amp;modules=site.styles&amp;only=styles&amp;skin=vector"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Programmbibliothek – Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//de.m.wikipedia.org/wiki/Programmbibliothek"> <link rel="alternate" type="application/x-wiki" title="Seite bearbeiten" href="/w/index.php?title=Programmbibliothek&amp;action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (de)"> <link rel="EditURI" type="application/rsd+xml" href="//de.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://de.wikipedia.org/wiki/Programmbibliothek"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de"> <link rel="alternate" type="application/atom+xml" title="Atom-Feed für „Wikipedia“" href="/w/index.php?title=Spezial:Letzte_%C3%84nderungen&amp;feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin-vector-legacy mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Programmbibliothek rootpage-Programmbibliothek skin-vector action-view"><div id="mw-page-base" class="noprint"></div> <div id="mw-head-base" class="noprint"></div> <div id="content" class="mw-body" role="main"> <a id="top"></a> <div id="siteNotice"><!-- CentralNotice --></div> <div class="mw-indicators"> </div> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Programmbibliothek</span></h1> <div id="bodyContent" class="vector-body"> <div id="siteSub" class="noprint">aus Wikipedia, der freien Enzyklopädie</div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="contentSub2"></div> <div id="jump-to-nav"></div> <a class="mw-jump-link" href="#mw-head">Zur Navigation springen</a> <a class="mw-jump-link" href="#searchInput">Zur Suche springen</a> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p>Eine <b>Programmbibliothek</b> (kurz <b>Bibliothek</b>; <span style="font-style:normal;font-weight:normal"><a href="/wiki/Englische_Sprache" title="Englische Sprache">englisch</a></span> <span lang="en-Latn" style="font-style:italic">library</span>, kurz <i><span lang="en">lib</span></i>) bezeichnet in der <a href="/wiki/Programmierung" title="Programmierung">Programmierung</a> eine Sammlung von <a href="/wiki/Unterprogramm" title="Unterprogramm">Unterprogrammen</a>/-routinen, die Lösungswege für thematisch zusammengehörende Problemstellungen anbieten. Bibliotheken sind im Unterschied zu <a href="/wiki/Computerprogramm" title="Computerprogramm">Programmen</a> keine eigenständig lauffähigen Einheiten, sondern sie enthalten <a href="/wiki/Modul_(Software)" title="Modul (Software)">Hilfsmodule</a>, die von Programmen angefordert werden. </p><p>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.&#160;a. nach dem Typ des Programmcodes, z.&#160;B. Quelltexte, Makros, Object- oder Bytecode, Maschinencode usw. Dementsprechend werden Bibliotheken zu unterschiedlichen Zeitpunkten benutzt, manche nur im Rahmen der <a href="/wiki/Softwareentwicklung" class="mw-redirect" title="Softwareentwicklung">Softwareentwicklung</a> (von Werkzeugen der <a href="/wiki/Integrierte_Entwicklungsumgebung" title="Integrierte Entwicklungsumgebung">Entwicklungsumgebung</a>), andere nur zur <a href="/wiki/Laufzeit_(Informatik)" title="Laufzeit (Informatik)">Ausführung</a> von Programmen, wieder andere als Mischform von beiden. Solche Bibliotheken enthalten häufig nicht nur Unterprogramme, sondern Programmcodeteile aller <a href="/wiki/Computerprogramm#Klassifizierungsmöglichkeiten" title="Computerprogramm">Programm-Typen</a>. </p><p>Eine besondere Form von Programmbibliotheken sind <a href="/wiki/Framework" title="Framework">Frameworks</a>. </p> <div id="toc" class="toc" role="navigation" aria-labelledby="mw-toc-heading"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none" /><div class="toctitle" lang="de" dir="ltr"><h2 id="mw-toc-heading">Inhaltsverzeichnis</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div> <ul> <li class="toclevel-1 tocsection-1"><a href="#Zugriff"><span class="tocnumber">1</span> <span class="toctext">Zugriff</span></a></li> <li class="toclevel-1 tocsection-2"><a href="#Speicherungsformen"><span class="tocnumber">2</span> <span class="toctext">Speicherungsformen</span></a></li> <li class="toclevel-1 tocsection-3"><a href="#Statische_Bibliotheken"><span class="tocnumber">3</span> <span class="toctext">Statische Bibliotheken</span></a></li> <li class="toclevel-1 tocsection-4"><a href="#Dynamische_Bibliotheken"><span class="tocnumber">4</span> <span class="toctext">Dynamische Bibliotheken</span></a></li> <li class="toclevel-1 tocsection-5"><a href="#Beispiele"><span class="tocnumber">5</span> <span class="toctext">Beispiele</span></a></li> <li class="toclevel-1 tocsection-6"><a href="#Bibliotheken_in_verschiedenen_Programmiersprachen"><span class="tocnumber">6</span> <span class="toctext">Bibliotheken in verschiedenen Programmiersprachen</span></a> <ul> <li class="toclevel-2 tocsection-7"><a href="#Java"><span class="tocnumber">6.1</span> <span class="toctext">Java</span></a></li> </ul> </li> <li class="toclevel-1 tocsection-8"><a href="#Bibliotheken_bei_verschiedenen_Betriebssystemen"><span class="tocnumber">7</span> <span class="toctext">Bibliotheken bei verschiedenen Betriebssystemen</span></a> <ul> <li class="toclevel-2 tocsection-9"><a href="#Windows"><span class="tocnumber">7.1</span> <span class="toctext">Windows</span></a></li> <li class="toclevel-2 tocsection-10"><a href="#Unixartige_Systeme"><span class="tocnumber">7.2</span> <span class="toctext">Unixartige Systeme</span></a></li> <li class="toclevel-2 tocsection-11"><a href="#Bibliotheken_unter_z/OS"><span class="tocnumber">7.3</span> <span class="toctext">Bibliotheken unter z/OS</span></a></li> <li class="toclevel-2 tocsection-12"><a href="#Bibliotheken_unter_Amiga_OS"><span class="tocnumber">7.4</span> <span class="toctext">Bibliotheken unter Amiga OS</span></a></li> </ul> </li> <li class="toclevel-1 tocsection-13"><a href="#Weblinks"><span class="tocnumber">8</span> <span class="toctext">Weblinks</span></a></li> <li class="toclevel-1 tocsection-14"><a href="#Einzelnachweise"><span class="tocnumber">9</span> <span class="toctext">Einzelnachweise</span></a></li> </ul> </div> <div class="mw-heading mw-heading2"><h2 id="Zugriff">Zugriff</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Programmbibliothek&amp;veaction=edit&amp;section=1" title="Abschnitt bearbeiten: Zugriff" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Programmbibliothek&amp;action=edit&amp;section=1" title="Quellcode des Abschnitts bearbeiten: Zugriff"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Mögliche Zugriffe auf Funktionen einer Programmbibliothek sind durch die <a href="/wiki/Programmierschnittstelle" title="Programmierschnittstelle">Programmierschnittstelle</a> (API) definiert. Dabei handelt es sich um die Gesamtheit der öffentlich verfügbaren Funktionen und Klassen; in Abgrenzung zu den privaten Einheiten der Bibliothek, die nicht zugänglich sind. </p><p>Manche <a href="/wiki/Propriet%C3%A4re_Software" title="Proprietäre Software">proprietären</a> Programmbibliotheken werden nicht im <a href="/wiki/Quelltext" title="Quelltext">Quelltext</a> veröffentlicht, da sie Firmengeheimnisse darstellen. Zum Schutz gegen <a href="/wiki/Decompiler" title="Decompiler">Dekompilieren</a> wird dann oft ein <a href="/wiki/Obfuskation_(Software)" title="Obfuskation (Software)">Obfuscator</a> eingesetzt sowie alle <a href="/wiki/Debugsymbol" title="Debugsymbol">Symbole</a> (<a href="/wiki/Variable_(Programmierung)" title="Variable (Programmierung)">Variablen</a>- und <a href="/wiki/Label_(Programmierung)" title="Label (Programmierung)">Sprungadressnamen</a>) entfernt. </p> <div class="mw-heading mw-heading2"><h2 id="Speicherungsformen">Speicherungsformen</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Programmbibliothek&amp;veaction=edit&amp;section=2" title="Abschnitt bearbeiten: Speicherungsformen" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Programmbibliothek&amp;action=edit&amp;section=2" title="Quellcode des Abschnitts bearbeiten: Speicherungsformen"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Programmbibliotheken und ihre Inhalte können, abhängig vom Betriebssystem und der Entwicklungsumgebung, in unterschiedlichen Formen und Strukturen gespeichert werden, zum Beispiel: </p> <ul><li>Die Bibliothek ist ein <a href="/wiki/Verzeichnisstruktur" title="Verzeichnisstruktur">Dateiverzeichnis</a>,<style data-mw-deduplicate="TemplateStyles:r247957335">.mw-parser-output .fussnoten-marke{font-size:0.75rem;font-style:normal;font-variant:normal;font-weight:normal;unicode-bidi:isolate;white-space:nowrap}.mw-parser-output .fussnoten-marke.reference,.mw-parser-output span.fussnoten-inhalt{padding-left:0.1rem}.mw-parser-output .fussnoten-marke.reference~.fussnoten-marke.reference,.mw-parser-output span.fussnoten-inhalt~span.fussnoten-inhalt{padding-left:0.15rem}.mw-parser-output .fussnoten-block{margin-bottom:0.1rem}.mw-parser-output div.fussnoten-inhalt{display:inline-block;padding-left:0.8rem;text-indent:-0.8rem}.mw-parser-output div.fussnoten-inhalt p,.mw-parser-output div.fussnoten-inhalt dl,.mw-parser-output div.fussnoten-inhalt ol,.mw-parser-output div.fussnoten-inhalt ul{text-indent:0}.mw-parser-output div.fussnoten-inhalt.fussnoten-floatfix{display:block}.mw-parser-output .fussnoten-box{margin-top:0.5rem;padding-left:0.8rem}.mw-parser-output .fussnoten-box,.mw-parser-output div.fussnoten-inhalt{font-size:94%}.mw-parser-output .fussnoten-box div.fussnoten-inhalt,.mw-parser-output span.fussnoten-inhalt,.mw-parser-output .fussnoten-inhalt .reference-text{font-size:inherit}.mw-parser-output .fussnoten-inhalt .reference-text{display:inline}.mw-parser-output .fussnoten-linie{display:inline-block;position:relative;top:-1em;border-top:solid 1px #808080;width:8rem}.mw-parser-output .fussnoten-linie+p,.mw-parser-output .fussnoten-linie+dl,.mw-parser-output .fussnoten-linie+ol,.mw-parser-output .fussnoten-linie+ul,.mw-parser-output .fussnoten-linie+link+div{margin-top:-1em}.mw-parser-output .fussnoten-marke.reference:target,.mw-parser-output .fussnoten-inhalt:target{background-color:#eaf3ff;box-shadow:0 0 0 0.25em #eaf3ff}.mw-parser-output .fussnoten-marke.reference:target,.mw-parser-output .fussnoten-inhalt:target .fussnoten-marke{font-weight:bold}</style>&#160;<span class="reference"><sup class="fussnoten-marke" data-annotationpair-m="a">a</sup></span> ihre Elemente/Komponenten sind einzelne <a href="/wiki/Datei" title="Datei">Dateien</a>.<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r247957335">&#160;<span class="reference"><sup class="fussnoten-marke" data-annotationpair-m="a">a</sup></span></li> <li>Die Bibliothek ist eine Datei,<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r247957335">&#160;<span class="reference"><sup class="fussnoten-marke" data-annotationpair-m="a">a</sup></span> die darin enthaltenen Komponenten werden von den Programmen der Entwicklungsumgebung oder einer speziellen Bibliotheksverwaltungssoftware identifiziert und verarbeitet.</li></ul> <dl><dd>Beispiele: Eine sogenannte <a href="/wiki/Dynamic_Link_Library" title="Dynamic Link Library">'DLL'</a> bei Microsoft oder eine <a href="/wiki/Partitioned_Data_Set" title="Partitioned Data Set">PO-Datei</a> bei IBM-<a href="/wiki/Gro%C3%9Frechner" title="Großrechner">Großrechnern</a> als Bibliothek für Quelltexte, Objektmodule oder ausführbare Lademodule.</dd></dl> <ul><li>Unterschiedliche Arten von Bibliotheken werden in einer gemeinsamen Datei<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r247957335">&#160;<span class="reference"><sup class="fussnoten-marke" data-annotationpair-m="a">a</sup></span> verwaltet, die Entwicklungsumgebung kann dies unterscheiden/verarbeiten. Beispiel: Eine 'MDB' bei <a href="/wiki/Microsoft_Access" title="Microsoft Access">MS Access</a> enthält Bibliotheken mit Quellcode, Makros, vorübersetztem Pseudocode und anderen Codetypen.</li> <li>Es existiert keine ‚Bibliothek‘, die Komponenten werden als einzelne Dateien gespeichert und ausgeführt, z.&#160;B. als „EXE-Dateien“.</li></ul> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r247957335"><div class="fussnoten-box"> <div class="fussnoten-linie" aria-hidden="true" role="presentation"></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r247957335"><div class="fussnoten-block"><div class="fussnoten-inhalt references"><sup class="fussnoten-marke mw-cite-backlink" data-annotationpair-a="a">a</sup>&#160;<div class="reference-text">verwaltet vom üblichen Dateiverwaltungssystem des Betriebssystems</div></div></div> </div> <div class="mw-heading mw-heading2"><h2 id="Statische_Bibliotheken">Statische Bibliotheken</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Programmbibliothek&amp;veaction=edit&amp;section=3" title="Abschnitt bearbeiten: Statische Bibliotheken" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Programmbibliothek&amp;action=edit&amp;section=3" title="Quellcode des Abschnitts bearbeiten: Statische Bibliotheken"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>„Statische Bibliothek“ wird eine Programmbibliothek genannt, die <a href="/wiki/Modul_(Software)" title="Modul (Software)">Module</a>/<a href="/wiki/Unterprogramm" title="Unterprogramm">Unterprogramme</a> enthält, die durch einen so genannten <a href="/wiki/Linker_(Computerprogramm)" title="Linker (Computerprogramm)">Linker</a> (von englisch „to link“: verknüpfen) mit dem <a href="/wiki/Compiler" title="Compiler">Kompilat</a> eines anderen Programms verbunden werden. Dabei erzeugt der Linker, in der Regel für ein Hauptprogramm, eine <a href="/wiki/Ausf%C3%BChrbare_Datei" title="Ausführbare Datei">ausführbare Datei</a> oder (je nach Betriebssystem) ein <a href="/wiki/Lademodul" title="Lademodul">Lademodul</a> in einer <i>Ladebibliothek,</i> in der die von diesem aufgerufenen Module fest (statisch) eingebunden/angehängt sind. </p><p>Ein optimierender Linker sucht aus den zugeordneten Objekt-Modulen (Bibliotheksdateien) nur jene Komponenten (Unterprogramme oder Daten) heraus, die vom Programm auch tatsächlich aufgerufen (referenziert) werden (und für die es im Programm keine <a href="/wiki/%C3%9Cberschreiben_(OOP)" title="Überschreiben (OOP)">überschreibende</a> Implementierung gibt) und hängt sie dann an das Programm an. Die so entstehende Datei wird entsprechend größer. Einfache Linker fügen einfach das komplette Objekt-Modul bzw. die komplette Bibliothek hinzu und vergrößern das Programm dadurch noch mehr. </p><p>Eine statische Bibliothek ist im Allgemeinen selbst Ergebnis aus Quelltexten, aufgeteilt in mehrere Module, deren Kompilate (<a href="/wiki/Objektcode" title="Objektcode">Objektmodule</a>) dann vom Linker zu der Bibliothek zusammengefügt wurden. </p><p>Kommerzielle Anbieter von Frameworks, die den Quellcode ihrer Funktionen nicht offenlegen möchten, stellen diese den Entwicklern üblicherweise in Form von statischen Bibliotheken und den zugehörigen Header-Dateien bereit. Dadurch haben Software-Entwickler die Möglichkeit, die gebotenen Funktionen in ihren Programmen zu verwenden und in Binärform in ihre Programme einzubauen, ohne dass neben den Definitionen der Quellcode der Funktionen vorliegen muss. </p><p>Hardware-Hersteller, die ihre Schnittstellen nicht offenlegen möchten, bieten durch die Bereitstellung statischer Bibliotheken eine Möglichkeit, um Treiber für neue Betriebssystem-Kernel bereitzustellen, ohne selbst bei Updates tätig werden zu müssen. Damit ist es beispielsweise auf Linux-Systemen mit Hilfe vom <a href="/wiki/Dynamic_Kernel_Module_Support" title="Dynamic Kernel Module Support">DKMS</a> möglich, Kernel-Module zu bauen, die die Anforderungen der gegebenen Kernel-Version erfüllen, ohne dass der komplette Quellcode vorliegen muss. Dies betrifft u.&#160;a. die Grafiktreiber von NVIDIA. </p> <div class="mw-heading mw-heading2"><h2 id="Dynamische_Bibliotheken">Dynamische Bibliotheken</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Programmbibliothek&amp;veaction=edit&amp;section=4" title="Abschnitt bearbeiten: Dynamische Bibliotheken" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Programmbibliothek&amp;action=edit&amp;section=4" title="Quellcode des Abschnitts bearbeiten: Dynamische Bibliotheken"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Aus <i>dynamischen Bibliotheken</i> werden Komponenten erst während der Laufzeit eines Programms über einen sogenannten <a href="/wiki/Lader_(Programmierung)" title="Lader (Programmierung)">Lader</a> in den <a href="/wiki/Arbeitsspeicher" title="Arbeitsspeicher">Arbeitsspeicher</a> geladen. Das geschieht entweder durch eine explizite Anweisung durch das Programm oder implizit durch einen so genannten <i>Laufzeit-Lader</i>, wenn das Programm <i>dynamisch gebunden</i> wurde. Heutzutage geschieht dies meist mit Betriebssystem-Unterstützung, 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. </p><p><i>Dynamisch gebundene</i> Programme müssen sich um das Laden der benötigten dynamischen Komponenten nicht selbst kümmern. Beim <i>dynamischen Binden</i> werden Bibliothek und Kompilat nur lose verknüpft. Statt die notwendigen <a href="/wiki/Debugsymbol" title="Debugsymbol">Symbole</a> (<a href="/wiki/Variable_(Programmierung)" title="Variable (Programmierung)">Variablen-</a> und <a href="/wiki/Label_(Programmierung)" title="Label (Programmierung)">Sprungadressnamen</a>) zu kopieren, wie beim <a href="/wiki/Statisches_Binden" class="mw-redirect" title="Statisches Binden">statischen Binden</a> der Fall, werden sie nur referenziert. Um das Laden der dynamischen Bibliotheken und Suchen der Symbole kümmert sich ein sogenannter <i>Laufzeit-Binder</i>. Das Auflösen der referenzierten Symbole geschieht entweder sofort (noch vor Start des eigentlichen Programms bzw. beim Laden aus der Bibliothek) oder lazy (<i>faul)</i>, bei der ersten Verwendung des Symbols. </p><p>Ein typischer Anwendungsfall dafür, Bibliotheken <i>explizit zu öffnen</i> (die Adresse von Symbolen nach deren Namen zu suchen, um das Symbol zu verwenden), sind <a href="/wiki/Plug-in" title="Plug-in">Plug-in</a>-Architekturen. Ein weiteres Szenario ist eine optionale Bibliothek, die verwendet wird, falls vorhanden, deren Fehlen aber keinen Fehler darstellt. </p><p>Ein Vorteil von dynamischen Bibliotheken ist, dass Programme, die eine dynamische Bibliothek verwenden, von Fehlerbehebungen in der Bibliothek profitieren, ohne neu übersetzt werden zu müssen. Wird beispielsweise ein Fehler in der <a href="/wiki/OpenSSL" title="OpenSSL">OpenSSL</a>-Bibliothek gefunden und behoben (die entsprechende Bibliothek wurde ersetzt), so genügt ein Neustart der Programme, die diese Bibliothek verwenden, um den Fehler auch in diesen Programmen zu beheben. </p><p>Da die Dateien, in denen dynamische Bibliotheken gespeichert werden, bei der Benutzung nur gelesen und ausgeführt, aber nicht verändert werden, müssen <a href="/wiki/Betriebssystem" title="Betriebssystem">Betriebssysteme</a> mit <a href="/wiki/Virtuelle_Speicherverwaltung" title="Virtuelle Speicherverwaltung">virtuellem Speicher</a> dynamische Bibliotheken nur einmal laden und können sie dann in den <a href="/wiki/Adressraum" title="Adressraum">Adressraum</a> aller verwendenden Prozesse einblenden. Dies ist beispielsweise bei <a href="/wiki/Multitasking" title="Multitasking">Multitasking</a>-Systemen vorteilhaft, wenn die Bibliotheken insgesamt sehr groß sind und von vielen Prozessen gleichzeitig verwendet werden. (Sollte die dynamische Bibliothek Zustände oder gespeicherte Daten besitzen, kann dies mit <a href="/wiki/Copy-On-Write" title="Copy-On-Write">Copy-On-Write</a> abgefangen werden.) </p><p>Viele moderne Betriebssysteme laden die dynamischen Bibliotheken jedoch nicht sofort, sondern blenden sie bei Bedarf direkt von der <a href="/wiki/Festplattenlaufwerk" title="Festplattenlaufwerk">Festplatte</a> aus ein – sie werden wie <i><a href="/wiki/Paging#Seitenauslagerung" title="Paging">ausgelagerte</a></i> <a href="/wiki/Paging" title="Paging">Pages</a> behandelt. Analog werden nicht benötigte Pages, die zu einer dynamischen Bibliothek gehören und nicht verändert wurden, einfach verworfen. Bei Bedarf können sie ja aus der Festplatte wieder geladen werden. </p> <div class="mw-heading mw-heading2"><h2 id="Beispiele">Beispiele</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Programmbibliothek&amp;veaction=edit&amp;section=5" title="Abschnitt bearbeiten: Beispiele" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Programmbibliothek&amp;action=edit&amp;section=5" title="Quellcode des Abschnitts bearbeiten: Beispiele"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Programmbibliotheken stellen Komponenten in bestimmten Zusammenhängen bereit, zu denen sie bezüglich ihrer Konstruktion und ihrer Schnittstellen passen (müssen). Dementsprechend gibt es Programmbibliotheken zum Beispiel in folgenden Zusammenhängen: </p> <ul><li>Funktionen des <a href="/wiki/Betriebssystem" title="Betriebssystem">Betriebssystems</a></li> <li>Weitere System- und <a href="/wiki/Dienstprogramm" title="Dienstprogramm">Dienstprogramme</a></li> <li>Teilkomponenten von <a href="/wiki/Integrierte_Entwicklungsumgebung" title="Integrierte Entwicklungsumgebung">Entwicklungsumgebungen</a> und <a href="/wiki/Programmiersprache" title="Programmiersprache">Programmiersprachen</a></li> <li>Komponenten von <a href="/wiki/Standardsoftware" title="Standardsoftware">Standardsoftware</a>-Produkten</li> <li>Komponenten von <a href="/wiki/Individualsoftware" title="Individualsoftware">Individualsoftware</a>, die von den <a href="/wiki/Anwender" class="mw-redirect" title="Anwender">Anwendern</a> in individuell festgelegten Bibliotheken verwaltet werden.</li> <li><a href="/wiki/GUI-Toolkit" title="GUI-Toolkit">GUI-Toolkits</a> zum Erstellen grafischer Benutzeroberflächen</li></ul> <div class="mw-heading mw-heading2"><h2 id="Bibliotheken_in_verschiedenen_Programmiersprachen">Bibliotheken in verschiedenen Programmiersprachen</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Programmbibliothek&amp;veaction=edit&amp;section=6" title="Abschnitt bearbeiten: Bibliotheken in verschiedenen Programmiersprachen" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Programmbibliothek&amp;action=edit&amp;section=6" title="Quellcode des Abschnitts bearbeiten: Bibliotheken in verschiedenen Programmiersprachen"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Bibliotheken in Programmiersprachen enthalten Dienste, die nicht im Compiler implementiert sind, sondern in der Sprache selbst programmiert sind und mit dem Compiler zusammen oder völlig von ihm getrennt dem Programmierer zur Verfügung stehen. Im ersten Fall ist die Bibliothek meist in der Sprachbeschreibung festgelegt. Im zweiten Fall spricht man von einer externen Bibliothek. </p><p>In der Sprachbeschreibung festgelegte Bibliotheken unterscheiden sich teilweise stark im Umfang. </p> <table class="wikitable zebra sortable" style="text-align:right"> <tbody><tr> <th>Sprache </th> <th>Teile/Pakete </th> <th>Header/Klassen </th> <th>Funktionen/Methoden/Konstruktoren </th></tr> <tr> <td align="left">C (C89+Amendments) </td> <td>1 </td> <td>18 </td> <td>142 </td></tr> <tr> <td align="left">C (C99) </td> <td>1 </td> <td>24 </td> <td>482 </td></tr> <tr> <td align="left">C++ </td> <td>1 </td> <td>32 + 18 (C89) </td> <td> </td></tr> <tr> <td align="left">Java 2 (JDK 1.2) </td> <td>62 </td> <td>1.287 </td> <td>≈ 18.000 </td></tr> <tr> <td align="left">Java 6 </td> <td>202 </td> <td>3.850 </td> <td>21.881 </td></tr> <tr> <td align="left"><a href="/wiki/.NET_Framework" class="mw-redirect" title=".NET Framework">.Net</a> 1.0 </td> <td>41 </td> <td>3.581 </td> <td>35.470 </td></tr> <tr> <td align="left">.Net 1.1 </td> <td>43 </td> <td>3.818 </td> <td>37.556 </td></tr> <tr> <td align="left">.Net 2.0 </td> <td>51 </td> <td>7.419 </td> <td>74.607 </td></tr> <tr> <td align="left">.Net 3.0 </td> <td>80 </td> <td>10.639 </td> <td>102.613 </td></tr> <tr> <td align="left">.Net 3.5 </td> <td>98 </td> <td>11.417 </td> <td>109.657 </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Java">Java</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Programmbibliothek&amp;veaction=edit&amp;section=7" title="Abschnitt bearbeiten: Java" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Programmbibliothek&amp;action=edit&amp;section=7" title="Quellcode des Abschnitts bearbeiten: Java"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Java-Technologie" title="Java-Technologie">Java</a> ist eine eigene <a href="/wiki/Plattform_(Computer)" title="Plattform (Computer)">Plattform</a> 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 <i>.class</i>-Dateien vor und werden bei Bedarf geladen. In der Regel sind Bibliotheken, wenn sie aus mehreren Klassen bestehen, in einem <a href="/wiki/Java_Archive" title="Java Archive">Java-Archiv</a> zusammengefasst. Die Java-API selbst liegt ebenfalls in Form von Java-Archiven vor. </p><p>Da die einzelnen Klassen einer Bibliothek erst zur Laufzeit geladen werden, kann es bei der ersten Verwendung zu Verzögerungen kommen, bis die Klasse geladen und initialisiert wurde. In <a href="/wiki/Real-Time_Java" title="Real-Time Java">Java für Echtzeitsysteme</a>, aber auch in <a href="/wiki/Java_SE" class="mw-redirect" title="Java SE">Java SE</a> 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 Verzögerung entsteht. </p> <div class="mw-heading mw-heading2"><h2 id="Bibliotheken_bei_verschiedenen_Betriebssystemen">Bibliotheken bei verschiedenen Betriebssystemen</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Programmbibliothek&amp;veaction=edit&amp;section=8" title="Abschnitt bearbeiten: Bibliotheken bei verschiedenen Betriebssystemen" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Programmbibliothek&amp;action=edit&amp;section=8" title="Quellcode des Abschnitts bearbeiten: Bibliotheken bei verschiedenen Betriebssystemen"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Windows">Windows</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Programmbibliothek&amp;veaction=edit&amp;section=9" title="Abschnitt bearbeiten: Windows" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Programmbibliothek&amp;action=edit&amp;section=9" title="Quellcode des Abschnitts bearbeiten: Windows"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Bei den <a href="/wiki/Betriebssystem" title="Betriebssystem">Betriebssystemen</a> <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a> und <a href="/wiki/OS/2" title="OS/2">OS/2</a> wird eine Bibliotheksdatei, die dynamisch bindet, als <i>DLL</i> (für <a href="/wiki/Dynamic_Link_Library" title="Dynamic Link Library"><i><b>D</b>ynamic <b>L</b>ink <b>L</b>ibrary</i></a>) bezeichnet. Entsprechend haben diese Dateien meist die <a href="/wiki/Dateiendung" class="mw-redirect" title="Dateiendung">Dateiendung</a> <b>.dll</b>. Ihr Dateiformat ist <a href="/wiki/New_Executable" title="New Executable">New Executable</a> (16 Bit), <a href="/w/index.php?title=Linear_Executable&amp;action=edit&amp;redlink=1" class="new" title="Linear Executable (Seite nicht vorhanden)">Linear Executable</a> (32-Bit-OS/2) oder <a href="/wiki/Portable_Executable" title="Portable Executable">Portable Executable</a> (32- bzw. 64-Bit-Windows). </p><p>Unter Windows wird zwischen mehreren Arten von DLLs unterschieden: </p> <ul><li>Einsprungs-DLL</li> <li><a href="/wiki/ActiveX" title="ActiveX">ActiveX</a>-DLL</li> <li><a href="/wiki/.NET_Framework#Assemblies" class="mw-redirect" title=".NET Framework">.NET-Assembly</a> (<a href="/wiki/Common_Language_Infrastructure" title="Common Language Infrastructure">CLI</a>)</li> <li><a href="/w/index.php?title=Windows_Metadata&amp;action=edit&amp;redlink=1" class="new" title="Windows Metadata (Seite nicht vorhanden)">Windows Metadata</a> (<a href="/wiki/Common_Language_Infrastructure" title="Common Language Infrastructure">CLI</a>, Dateiendung .winmd)</li></ul> <p>Einsprungs-DLLs enthalten hierbei Funktionen, während ActiveX-DLLs <a href="/wiki/Klasse_(Objektorientierung)" title="Klasse (Objektorientierung)">Klassen</a> enthalten. </p><p>DLLs bis <i>Windows 98</i> und <i>Windows NT 4.0</i> können nicht kontrolliert werden – jedes Programm darf sie austauschen und kann dem Betriebssystem damit möglicherweise Schaden zufügen. <i>Windows Me</i>, <i>Windows 2000</i> und die Folgeversionen verfügen über einen Systemschutz, der auch die DLLs einbezieht. </p><p><b>Vorteile</b> </p> <ul><li>Außer Code können auch Daten (zum Beispiel Dialog-Ressourcen) von mehreren Prozessen gemeinsam genutzt werden.</li> <li>DLLs werden häufig <i>statisch verlinkt</i>, können aber auch <i>dynamisch verlinkt</i> werden. Dynamisch heißt 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 möglich, durch Austauschen der DLL die Funktionalität des Programms zur Laufzeit zu verändern.</li> <li>DLLs können unabhängig vom Hauptprogramm gewartet werden. Das heißt, Funktionen in der DLL können ohne Wissen des Programms verändert werden. Danach wird die DLL einfach ausgetauscht (die alte DLL-Datei wird überschrieben), ohne dass das Hauptprogramm verändert werden muss.</li> <li>Da die DLL als unabhängige Datei dem Hauptprogramm beiliegen muss, können Anbieter von Programmcode besser sicherstellen, dass Programmierer, die die Funktionen ihrer DLL nutzen, dafür auch bezahlen. Die Funktionalität der DLL verschwindet so nicht (wie bei einer Library) im Code des Programms. Dieser Vorteil wird von Befürwortern <a href="/wiki/Freie_Software" title="Freie Software">freier Software</a> als Nachteil gesehen.</li></ul> <p><b>Nachteile</b> </p> <ul><li>Änderungen in DLLs ziehen oft auch Änderungen im Programm nach sich. Dadurch kommt es leicht zu Versionskonflikten, die oft nur sehr schwer aufzuspüren 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 außer diesem speziellen Programm kein anderes benutzen kann. Außerdem ist die Entwicklung und insbesondere die Anbindung im Vergleich aufwändiger als zur statischen Bibliothek.</li> <li>Praktisch hat dies jedoch keine Bedeutung mehr, da seit mindestens Windows 2000 die allermeisten Applikationen <i>private Bibliotheken</i><sup id="cite_ref-endofdllhell_1-0" class="reference"><a href="#cite_note-endofdllhell-1"><span class="cite-bracket">&#91;</span>1<span class="cite-bracket">&#93;</span></a></sup> mit ihrer Installation mitführen, also ein Versionskonflikt im Sinn eines <a href="/wiki/DLL-Konflikt" title="DLL-Konflikt">DLL-Konflikts</a> ausgeschlossen ist. Unter Windows haben Bibliotheken, die im Programmordner der Anwendung abgelegt sind, eine höhere Priorität als die systemweit verfügbaren.<sup id="cite_ref-sharedlibpolicy_2-0" class="reference"><a href="#cite_note-sharedlibpolicy-2"><span class="cite-bracket">&#91;</span>2<span class="cite-bracket">&#93;</span></a></sup></li></ul> <div class="mw-heading mw-heading3"><h3 id="Unixartige_Systeme">Unixartige Systeme</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Programmbibliothek&amp;veaction=edit&amp;section=10" title="Abschnitt bearbeiten: Unixartige Systeme" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Programmbibliothek&amp;action=edit&amp;section=10" title="Quellcode des Abschnitts bearbeiten: Unixartige Systeme"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Auf <a href="/wiki/Unixartiges_Betriebssystem" class="mw-redirect" title="Unixartiges Betriebssystem">unixartigen Betriebssystemen</a> (wie z.&#160;B. <a href="/wiki/Linux" title="Linux">Linux</a>) verwenden statische Bibliotheken den Dateisuffix <code>.a</code> (von „Archiv“) und können mit den UNIX-Programmen <code>ar</code> und <code>nm</code> angesehen und bearbeitet werden. Bei Systemen, die eine Paketverwaltung anbieten, befinden sich statische Bibliotheken oft zusammen mit den <a href="/wiki/Header-Datei" title="Header-Datei">Header-Dateien</a> in einem separaten Entwicklungs-Paket. </p><p>Für dynamische Bibliotheken ist die Bezeichnung <i>shared library</i> (englisch für „gemeinsam genutzte Bibliothek“) gebräuchlich. Sehr verbreitet ist das <a href="/wiki/Executable_and_Linking_Format" title="Executable and Linking Format">Executable and Linking Format</a> <i>(ELF)</i>, das Standard-Format unter anderem von Linux, <a href="/wiki/FreeBSD" title="FreeBSD">FreeBSD</a> und <a href="/wiki/Solaris_(Betriebssystem)" title="Solaris (Betriebssystem)">Solaris</a>. Für diese Dateien hat sich die Endung <code>.so</code> (von <i>shared object</i>, „gemeinsam genutztes Objekt“) etabliert. In der Regel folgt dem Bibliotheksnamen noch die <a href="/wiki/Versionsnummer" title="Versionsnummer">Versionsnummer</a> der <a href="/wiki/Bin%C3%A4rschnittstelle" title="Binärschnittstelle">Binärschnittstelle</a> <i>(ABI version)</i>, so dass mehrere Versionen einer Bibliothek gleichzeitig installiert sein können. Meta-Informationen zu einem vorliegenden <code>.so</code> können bspw. mit <code>readelf</code> abgefragt werden. </p><p><i>Shared libraries</i> beginnen auf Linux (mit Ausnahme einiger Low-Level-Bibliotheken) üblicherweise mit dem <a href="/wiki/Pr%C3%A4fix" title="Präfix">Präfix</a> „<code>lib</code>“. Die eigentliche Bibliotheksdatei enthält die volle Versionsnummer. <a href="/wiki/Symbolische_Verkn%C3%BCpfung" title="Symbolische Verknüpfung">Symbolische Verknüpfungen</a> ermöglichen den Zugriff über den <code>so</code>-Namen, sowie den Zugriff ganz ohne Versionsangabe. Beispiel: </p> <ul><li><code>libfoo.so -&gt; libfoo.so.1</code></li> <li><code>libfoo.so.1 -&gt; libfoo.so.1.2.3</code></li> <li><code>libfoo.so.1.2.3</code></li></ul> <p>Der <code>so</code>-Name ist in dem Fall „<code>libfoo.so.1</code>“. Die Zahl nach „<code>.so.</code>“ ändert sich nur dann, wenn sich in einer neuen Version die Schnittstelle der Bibliothek ändert. </p><p>Der Laufzeit-Linker wählt anhand von Versions-Informationen im auszuführenden Programm bzw. in der zu ladenden Bibliothek eine Version mit einer <a href="/wiki/Bin%C3%A4rkompatibilit%C3%A4t" class="mw-redirect" title="Binärkompatibilität">kompatiblen</a> Schnittstelle aus. Da sowohl Programme von Bibliotheken abhängen können, als auch Bibliotheken von weiteren Bibliotheken, kann eine Software indirekt von vielen Bibliotheken abhängen. Da viele <a href="/wiki/Unixoide_Systeme" class="mw-redirect" title="Unixoide Systeme">Unixoide Systeme</a> die Bibliotheken zentral für Betriebssystem und Applikation zusammen verwalten, existieren <a href="/wiki/Paketverwaltung" title="Paketverwaltung">Paketverwaltungen</a>, die Abhängigkeiten berechnen und benötigte Bibliotheken automatisch installieren können. Beispiele für derartige Paketverwaltungs-Systeme sind <a href="/wiki/Advanced_Packaging_Tool" title="Advanced Packaging Tool">APT</a> und <a href="/wiki/Yellowdog_Updater,_Modified" title="Yellowdog Updater, Modified">YUM</a>. </p><p>Von welchen Bibliotheken ein Programm direkt abhängt, lässt sich auf einigen Systemen mit Hilfe des UNIX-Programms <code>ldd</code> herausfinden. </p><p>Bei Software, die in der Binärversion vertrieben werden soll, beispielsweise kommerzielle <a href="/wiki/Closed_Source" class="mw-redirect" title="Closed Source">Closed-Source-Software</a> oder <a href="/wiki/Portable_Software" title="Portable Software">portable</a>/distributionunabhängige Software, muss gewährleistet werden, dass alle benötigten Bibliotheken vorliegen. Das Anwendersystem, auf dem diese Software verwendet werden soll, muss dann als kompatible <a href="/wiki/Plattform_(Computer)" title="Plattform (Computer)">Binärplattform</a> agieren können. Dies kann folgendermaßen geschehen: </p> <ul><li>Angabe einer oder mehrerer kompatibler Betriebssystem-Distributionen, zum Beispiel: „Lauffähig unter Debian 5.0 (Lenny)“.</li> <li>Verwendung eines distributionsspezifischen Paketes, so dass benötigte Bibliotheken vom Paketmanager nachgeladen werden. Nachteil ist der enorme Aufwand der Bereitstellung eines Paketes für die vielen existierenden Distributionen.<sup id="cite_ref-linuxfordevices_3-0" class="reference"><a href="#cite_note-linuxfordevices-3"><span class="cite-bracket">&#91;</span>3<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-lgp2_4-0" class="reference"><a href="#cite_note-lgp2-4"><span class="cite-bracket">&#91;</span>4<span class="cite-bracket">&#93;</span></a></sup></li> <li>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. Anschließendes Anpassen des Bibliothekensuchpfads für das Programm mit <code>LD_LIBRARY_PATH</code> über ein Skript oder händisch.<sup id="cite_ref-lgp_5-0" class="reference"><a href="#cite_note-lgp-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup></li> <li>Verzicht auf dynamische Bibliotheken und <i><a href="/wiki/Statisches_Linken" class="mw-redirect" title="Statisches Linken">Statisches Linken</a></i>, was aber technisch schwierig ist<sup id="cite_ref-jones_6-0" class="reference"><a href="#cite_note-jones-6"><span class="cite-bracket">&#91;</span>6<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-baus_7-0" class="reference"><a href="#cite_note-baus-7"><span class="cite-bracket">&#91;</span>7<span class="cite-bracket">&#93;</span></a></sup> oder durch Lizenzkonflikte verhindert werden kann. Außerdem verliert man damit Distribution-basierenden Updatesupport.<sup id="cite_ref-drepper_8-0" class="reference"><a href="#cite_note-drepper-8"><span class="cite-bracket">&#91;</span>8<span class="cite-bracket">&#93;</span></a></sup></li> <li>Über <i>private Bibliotheken</i><sup id="cite_ref-endofdllhell_1-1" class="reference"><a href="#cite_note-endofdllhell-1"><span class="cite-bracket">&#91;</span>1<span class="cite-bracket">&#93;</span></a></sup> die über einen relativen Bibliothekspfad eingebunden werden. Hierzu muss die Applikation mit der <a href="/wiki/Linker_(Computerprogramm)" title="Linker (Computerprogramm)">Linker</a>-Option <code>$ORIGIN</code> erzeugt werden.<sup id="cite_ref-lgp_5-1" class="reference"><a href="#cite_note-lgp-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup></li></ul> <p>Objekt- und komponentenorientierte Ansätze können hier realisiert werden, indem in einer Funktion das entsprechende Objekt oder die Komponente instantiiert und zurückgegeben werden. </p><p><b>Vorteile</b> </p> <ul><li>Gemeinsame Nutzung von Ressourcen</li> <li>Vermeidung von redundanten privaten Libraries</li> <li>Eine enorme Anzahl von freien und mitgelieferten Bibliotheken stehen zur Verfügung</li> <li>Bibliotheken können unabhängig vom Hauptprogramm ausgebessert werden<sup id="cite_ref-drepper_8-1" class="reference"><a href="#cite_note-drepper-8"><span class="cite-bracket">&#91;</span>8<span class="cite-bracket">&#93;</span></a></sup> und Programmupdates werden kleiner</li> <li>Optimierungen an einer Stelle können das ganze System beschleunigen</li> <li>Können schnell veränderliche <a href="/wiki/Systemaufruf" title="Systemaufruf">Systemaufrufe</a> verbergen</li> <li>Abstrahieren von low-level Problemen</li></ul> <p><b>Nachteile</b> </p> <ul><li>Probleme in essentiellen Bibliotheken machen Systeme unbenutzbar. Durch entsprechende Skripte der Paketverwaltung ist bei modernen Distributionen jedoch meist sichergestellt, dass dies nicht passieren kann.</li> <li>Bei inkompatiblen Veränderungen der <a href="/wiki/Bin%C3%A4rschnittstelle" title="Binärschnittstelle">Binärschnittstelle</a> müssen alle abhängigen Programme neu kompiliert werden. Durch Versionsnummern und parallele Verwendung von Paketen reduziert sich das Problem der Binärkompatibilität, wird jedoch nicht gelöst.<sup id="cite_ref-binaryproblems_9-0" class="reference"><a href="#cite_note-binaryproblems-9"><span class="cite-bracket">&#91;</span>9<span class="cite-bracket">&#93;</span></a></sup></li> <li>Bei inkompatiblen Veränderungen der <a href="/wiki/Programmierschnittstelle" title="Programmierschnittstelle">Programmierschnittstelle</a> müssen alle abhängigen Programme entsprechend angepasst werden.</li> <li>Die Erstellung <a href="/wiki/Portable_Software" title="Portable Software">portabler</a> oder distributionsübergreifender Programme wird schwieriger.<sup id="cite_ref-troy_10-0" class="reference"><a href="#cite_note-troy-10"><span class="cite-bracket">&#91;</span>10<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-portableapps_11-0" class="reference"><a href="#cite_note-portableapps-11"><span class="cite-bracket">&#91;</span>11<span class="cite-bracket">&#93;</span></a></sup></li></ul> <div class="mw-heading mw-heading3"><h3 id="Bibliotheken_unter_z/OS"><span id="Bibliotheken_unter_z.2FOS"></span>Bibliotheken unter z/OS</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Programmbibliothek&amp;veaction=edit&amp;section=11" title="Abschnitt bearbeiten: Bibliotheken unter z/OS" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Programmbibliothek&amp;action=edit&amp;section=11" title="Quellcode des Abschnitts bearbeiten: Bibliotheken unter z/OS"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Bei <i><a href="/wiki/Z/OS" title="Z/OS">z/OS</a></i> wie auch in den Vorgängersystemen <a href="/wiki/System/360" title="System/360">System/360</a> und <a href="/wiki/System/390" title="System/390">System/390</a> werden/wurden Programmbibliotheken (wie alle Arten von Bibliotheken) in der Form von <a href="/wiki/Partitioned_Data_Set" title="Partitioned Data Set">Partitioned Data Sets</a> (PDS) geführt. Je Programmcode-Typ (siehe unten) werden i.&#160;d.&#160;R. eigene Bibliotheken benutzt und deren Elemente typneutral als <i>Member</i> bezeichnet. Die Members werden von verschiedenen Systemprogrammen der Entwicklungsumgebung dort eingestellt und von dort verwendet. </p><p>Je Programmcode-Typ wird – je nach Bedarf – eine (1) Bibliothek für ein ganzes Unternehmen, je Unternehmensbereich oder für bestimmte Anwendungsgebiete verwendet. Die Unterscheidung der Einträge erfolgt über den Membernamen. Es werden zum Beispiel folgende Arten von Programmbibliotheken benutzt: </p> <figure class="mw-default-size" typeof="mw:File/Thumb"><a href="/wiki/Datei:Compilerszenario_Gro%C3%9Frechner.png" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/6/65/Compilerszenario_Gro%C3%9Frechner.png/220px-Compilerszenario_Gro%C3%9Frechner.png" decoding="async" width="220" height="123" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/6/65/Compilerszenario_Gro%C3%9Frechner.png/330px-Compilerszenario_Gro%C3%9Frechner.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/6/65/Compilerszenario_Gro%C3%9Frechner.png/440px-Compilerszenario_Gro%C3%9Frechner.png 2x" data-file-width="884" data-file-height="493" /></a><figcaption>Code-/Bibliothekstypen z.&#160;B. bei z/OS (mit 3GL-Sprache)</figcaption></figure> <ul><li><i>Quelltextbibliotheken:</i> Diese enthalten den <a href="/wiki/Quellcode" class="mw-redirect" title="Quellcode">Quellcode</a> von Programmen oder Unterprogrammen, d.&#160;h. <a href="/wiki/Deklaration_(Programmierung)" title="Deklaration (Programmierung)">Deklarationen</a>, <a href="/wiki/Funktion_(Programmierung)" title="Funktion (Programmierung)">Funktionen</a> und je nach Programmiersprache andere Codeteile. Besondere Ausprägungen von Quelltexten werden oft in getrennten Bibliotheken verwaltet; Beispiele sind: <ul><li><i><a href="/wiki/Copybook" class="mw-redirect" title="Copybook">Copybook</a>-Bibliotheken;</i> sie enthalten Fragmente von Quellcode, zum Beispiel Datendeklarationen für bestimmte <a href="/wiki/Datensatz" title="Datensatz">Datensatz</a>-Arten oder funktionale Codeteile zur Verwendung in vielen Programmen.</li> <li><i>Makrobibliotheken</i> enthalten zum Beispiel für die Assemblersprache die Anweisungen, durch die beim Assemblieren der Makroaufruf in ASSemblercode umgewandelt und im Quellcode eingefügt wird.</li></ul></li></ul> <dl><dd>Die Einträge in Quelltextbibliotheken werden üblicherweise mithilfe von Texteditoren erzeugt und geändert sowie von Compilern/Assemblern als Input benutzt, um kompilierten Programmcode zu erzeugen.</dd></dl> <ul><li>In <i>Objektcode-Bibliotheken</i> werden von den Übersetzern <a href="/wiki/Objektcode" title="Objektcode">Objektmodule</a> eingestellt, je Kompilierung in der Regel ein Modul. Diese Module sind der Input für das anschließend erforderliche Linken oder Binden; dem auch <a href="/wiki/Linker_(Computerprogramm)" title="Linker (Computerprogramm)">Linkage Editor</a> genannten Systemprogramm wird diese Bibliothek als SYSLIB bekanntgegeben.</li> <li>Beim Binden entstehen sogenannte <a href="/wiki/Lademodul" title="Lademodul">Lademodule</a>, die in einer <i>Ladebibliothek</i>, u.&#160;a. auch „Core Image Library“ genannt, eingestellt werden. Ladebibliotheken können <ul><li>unternehmensweit in nur einer gemeinsamen Bibliothek alle Programm-Typen enthalten oder</li> <li>wahlweise (und in der Regel) in getrennten Bibliotheken die (per <a href="/wiki/Job_Control_Language" title="Job Control Language">JCL</a>) aufzurufenden <i>Hauptprogramme</i> bzw. die per Load-Befehl individuell nachzuladenen <i>Unterprogramme</i> aufnehmen.</li></ul></li></ul> <dl><dd>Zur <a href="/wiki/Ausf%C3%BChrbare_Datei" title="Ausführbare Datei">Ausführung</a> werden evtl. unterschiedliche Bibliotheken über die STEPLIB- oder die JOBLIB- oder die LINKLIST-Angabe zugeordnet und die einzelnen Module daraus vom <a href="/wiki/Betriebssystem" title="Betriebssystem">Betriebssystem</a> geladen.</dd></dl> <div class="mw-heading mw-heading3"><h3 id="Bibliotheken_unter_Amiga_OS">Bibliotheken unter Amiga OS</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Programmbibliothek&amp;veaction=edit&amp;section=12" title="Abschnitt bearbeiten: Bibliotheken unter Amiga OS" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Programmbibliothek&amp;action=edit&amp;section=12" title="Quellcode des Abschnitts bearbeiten: Bibliotheken unter Amiga OS"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Beim <a href="/wiki/AmigaOS" title="AmigaOS">AmigaOS</a> 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 Verfügung stellt. Das Programm verwendet dann relative Adressen, um über eine <a href="/wiki/Sprungtabelle" title="Sprungtabelle">Sprungtabelle</a> vor der Basisadresse an die eigentlichen Funktionen (hinter der Basisadresse) zu kommen. Diese Funktionen sind <a href="/wiki/Eintrittsinvarianz" title="Eintrittsinvarianz">eintrittsinvariant</a> (reentrant). </p><p>Selbst bei Änderungen der Bibliothek sind die bestehenden Einträge der Sprungtabellen immer gleich. Es kommen ggf. lediglich neue Einträge hinzu am Ende der Tabellen. Somit ist eine <a href="/wiki/Abw%C3%A4rtskompatibilit%C3%A4t" class="mw-redirect" title="Abwärtskompatibilität">Abwärtskompatibilität</a> gegeben. </p><p>Als Besonderheit kann bei AmigaOS beim Öffnen einer Library eine Mindest-Versionsnummer angegeben und so sichergestellt werden, dass eine gewünschte Funktionalität auch wirklich verfügbar ist. Wird diese Version nicht vorgefunden, kann das aufrufende Programm sicher auf eine einfachere Funktionalität, wie sie in der älteren Library-Version bereitgestellt wird, zurückschalten. </p><p>Bibliotheksdateien tragen die Endung <b>.library</b> und befinden sich meist im Verzeichnis <b>LIBS:</b> der <a href="/wiki/Systempartition" class="mw-redirect" title="Systempartition">Systempartition</a>. Das Betriebssystem überprüft bei der Suche nach einer Bibliothek auch das Programmverzeichnis des anfragenden Programms. </p> <div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Programmbibliothek&amp;veaction=edit&amp;section=13" title="Abschnitt bearbeiten: Weblinks" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Programmbibliothek&amp;action=edit&amp;section=13" title="Quellcode des Abschnitts bearbeiten: Weblinks"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="sisterproject" style="margin:0.1em 0 0 0;"><span class="noviewer" style="display:inline-block; line-height:10px; min-width:1.6em; text-align:center;" aria-hidden="true" role="presentation"><span class="mw-default-size" typeof="mw:File"><span title="Wiktionary"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Wiktfavicon_en.svg/16px-Wiktfavicon_en.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Wiktfavicon_en.svg/24px-Wiktfavicon_en.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Wiktfavicon_en.svg/32px-Wiktfavicon_en.svg.png 2x" data-file-width="16" data-file-height="16" /></span></span></span><b><a href="https://de.wiktionary.org/wiki/Programmbibliothek" class="extiw" title="wikt:Programmbibliothek">Wiktionary: Programmbibliothek</a></b>&#160;– Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen</div> <ul><li>Mike Hearn: <a rel="nofollow" class="external text" href="http://plan99.net/~mike/writing-shared-libraries.html">Writing shared libraries</a> Fallstricke und <a href="/wiki/Best_Practice" title="Best Practice">Best Practices</a> der Erstellung von ELF-Bibliotheken, 2004 (englisch)</li></ul> <div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Programmbibliothek&amp;veaction=edit&amp;section=14" title="Abschnitt bearbeiten: Einzelnachweise" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Programmbibliothek&amp;action=edit&amp;section=14" title="Quellcode des Abschnitts bearbeiten: Einzelnachweise"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <ol class="references"> <li id="cite_note-endofdllhell-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-endofdllhell_1-0">a</a></sup> <sup><a href="#cite_ref-endofdllhell_1-1">b</a></sup></span> <span class="reference-text"><span class="cite">Rick&#32;Anderson:&#32;<a rel="nofollow" class="external text" href="https://web.archive.org/web/20010605023737/http://msdn.microsoft.com/library/techart/dlldanger1.htm"><i>The End of DLL Hell.</i></a>&#32;microsoft.com,&#32;11.&#160;Januar 2000,&#32;archiviert&#32;vom&#32;<style data-mw-deduplicate="TemplateStyles:r235239667">.mw-parser-output .dewiki-iconexternal>a{background-position:center right;background-repeat:no-repeat}body.skin-minerva .mw-parser-output .dewiki-iconexternal>a{background-image:url("https://upload.wikimedia.org/wikipedia/commons/a/a4/OOjs_UI_icon_external-link-ltr-progressive.svg")!important;background-size:10px;padding-right:13px!important}body.skin-timeless .mw-parser-output .dewiki-iconexternal>a,body.skin-monobook .mw-parser-output .dewiki-iconexternal>a{background-image:url("https://upload.wikimedia.org/wikipedia/commons/3/30/MediaWiki_external_link_icon.svg")!important;padding-right:13px!important}body.skin-vector .mw-parser-output .dewiki-iconexternal>a{background-image:url("https://upload.wikimedia.org/wikipedia/commons/9/96/Link-external-small-ltr-progressive.svg")!important;background-size:0.857em;padding-right:1em!important}</style><span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=http%3A%2F%2Fmsdn.microsoft.com%2Flibrary%2Ftechart%2Fdlldanger1.htm">Original</a></span>&#32;am&#32;<span style="white-space:nowrap;">5.&#160;Juni 2001</span><span>;</span><span class="Abrufdatum">&#32;abgerufen am 15.&#160;Januar 2012</span>&#58;&#32;„<i>Private DLLs are DLLs that are installed with a specific application and used only by that application.</i>“</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AProgrammbibliothek&amp;rft.title=The+End+of+DLL+Hell&amp;rft.description=The+End+of+DLL+Hell&amp;rft.identifier=https%3A%2F%2Fweb.archive.org%2Fweb%2F20010605023737%2Fhttp%3A%2F%2Fmsdn.microsoft.com%2Flibrary%2Ftechart%2Fdlldanger1.htm&amp;rft.creator=Rick%26%2332%3BAnderson&amp;rft.publisher=microsoft.com&amp;rft.date=2000-01-11&amp;rft.source=http&#58;//msdn.microsoft.com/library/techart/dlldanger1.htm">&#160;</span></span> </li> <li id="cite_note-sharedlibpolicy-2"><span class="mw-cite-backlink"><a href="#cite_ref-sharedlibpolicy_2-0">↑</a></span> <span class="reference-text"><span class="cite">Arnaud&#32;Desitter:&#32;<a rel="nofollow" class="external text" href="https://web.archive.org/web/20110720003722/http://www.fortran-2000.com/ArnaudRecipes/sharedlib.html"><i>Using static and shared libraries across platforms; Row 9: Library Path.</i></a>&#32;ArnaudRecipes,&#32;20.&#160;Juli 2011,&#32;archiviert&#32;vom&#32;<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r235239667"><span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=http%3A%2F%2Fwww.fortran-2000.com%2FArnaudRecipes%2Fsharedlib.html">Original</a></span>&#32;am&#32;<span style="white-space:nowrap;">20.&#160;Juli 2011</span><span>;</span><span class="Abrufdatum">&#32;abgerufen am 26.&#160;Januar 2012</span>&#32;(englisch)&#58;&#32;„<i>win32 runtime library path:. and then PATH</i>“</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AProgrammbibliothek&amp;rft.title=Using+static+and+shared+libraries+across+platforms%3B+Row+9%3A+Library+Path&amp;rft.description=Using+static+and+shared+libraries+across+platforms%3B+Row+9%3A+Library+Path&amp;rft.identifier=https%3A%2F%2Fweb.archive.org%2Fweb%2F20110720003722%2Fhttp%3A%2F%2Fwww.fortran-2000.com%2FArnaudRecipes%2Fsharedlib.html&amp;rft.creator=Arnaud%26%2332%3BDesitter&amp;rft.publisher=ArnaudRecipes&amp;rft.date=2011-07-20&amp;rft.source=http&#58;//www.fortran-2000.com/ArnaudRecipes/sharedlib.html&amp;rft.language=englisch">&#160;</span></span> </li> <li id="cite_note-linuxfordevices-3"><span class="mw-cite-backlink"><a href="#cite_ref-linuxfordevices_3-0">↑</a></span> <span class="reference-text"><span class="cite">Eric&#32;Brown:&#32;<a rel="nofollow" class="external text" href="https://web.archive.org/web/20131224204224/http://archive.linuxgizmos.com/lsb-40-certifications-aim-to-heal-linux-fragmentation/"><i>LSB 4.0 certifications aim to heal Linux fragmentation.</i></a>&#32;linuxfordevices.com,&#32;8.&#160;Dezember 2010,&#32;archiviert&#32;vom&#32;<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r235239667"><span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=http%3A%2F%2Farchive.linuxgizmos.com%2Flsb-40-certifications-aim-to-heal-linux-fragmentation%2F">Original</a></span>&#32;am&#32;<span style="white-space:nowrap;">24.&#160;Dezember 2013</span><span>;</span><span class="Abrufdatum">&#32;abgerufen am 16.&#160;November 2011</span>&#32;(englisch)&#58;&#32;„<i>[…] 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.“[…]</i>“</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AProgrammbibliothek&amp;rft.title=LSB+4.0+certifications+aim+to+heal+Linux+fragmentation&amp;rft.description=LSB+4.0+certifications+aim+to+heal+Linux+fragmentation&amp;rft.identifier=https%3A%2F%2Fweb.archive.org%2Fweb%2F20131224204224%2Fhttp%3A%2F%2Farchive.linuxgizmos.com%2Flsb-40-certifications-aim-to-heal-linux-fragmentation%2F&amp;rft.creator=Eric%26%2332%3BBrown&amp;rft.publisher=linuxfordevices.com&amp;rft.date=2010-12-08&amp;rft.source=http&#58;//archive.linuxgizmos.com/lsb-40-certifications-aim-to-heal-linux-fragmentation/&amp;rft.language=englisch">&#160;</span></span> </li> <li id="cite_note-lgp2-4"><span class="mw-cite-backlink"><a href="#cite_ref-lgp2_4-0">↑</a></span> <span class="reference-text"><span class="cite">Eskild&#32;Hustvedt:&#32;<a rel="nofollow" class="external text" href="https://web.archive.org/web/20110921031204/http://blog.linuxgamepublishing.com/2009/11/24/playing-well-with-distros/"><i>Playing well with distros.</i></a>&#32;<a href="/wiki/Linux_Game_Publishing" title="Linux Game Publishing">Linux Game Publishing</a>,&#32;24.&#160;November 2009,&#32;archiviert&#32;vom&#32;<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r235239667"><span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=http%3A%2F%2Fblog.linuxgamepublishing.com%2F2009%2F11%2F24%2Fplaying-well-with-distros%2F">Original</a></span>&#32;am&#32;<span style="white-space:nowrap;">21.&#160;September 2011</span><span>;</span><span class="Abrufdatum">&#32;abgerufen am 15.&#160;Januar 2012</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AProgrammbibliothek&amp;rft.title=Playing+well+with+distros&amp;rft.description=Playing+well+with+distros&amp;rft.identifier=https%3A%2F%2Fweb.archive.org%2Fweb%2F20110921031204%2Fhttp%3A%2F%2Fblog.linuxgamepublishing.com%2F2009%2F11%2F24%2Fplaying-well-with-distros%2F&amp;rft.creator=Eskild%26%2332%3BHustvedt&amp;rft.publisher=%5B%5BLinux+Game+Publishing%5D%5D&amp;rft.date=2009-11-24&amp;rft.source=http&#58;//blog.linuxgamepublishing.com/2009/11/24/playing-well-with-distros/&amp;rft.language=englisch">&#160;</span></span> </li> <li id="cite_note-lgp-5"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-lgp_5-0">a</a></sup> <sup><a href="#cite_ref-lgp_5-1">b</a></sup></span> <span class="reference-text"><span class="cite">Eskild&#32;Hustvedt:&#32;<a rel="nofollow" class="external text" href="https://web.archive.org/web/20140413195014/http://blog.linuxgamepublishing.com/2009/02/08/our-new-way-to-meet-the-lgpl/"><i>Our new way to meet the LGPL.</i></a>&#32;8.&#160;Februar 2009,&#32;archiviert&#32;vom&#32;<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r235239667"><span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=http%3A%2F%2Fblog.linuxgamepublishing.com%2F2009%2F02%2F08%2Four-new-way-to-meet-the-lgpl%2F">Original</a></span>&#32;am&#32;<span style="white-space:nowrap;">13.&#160;April 2014</span><span>;</span><span class="Abrufdatum">&#32;abgerufen am 9.&#160;März 2011</span>&#32;(englisch)&#58;&#32;„<i>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!</i>“</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AProgrammbibliothek&amp;rft.title=Our+new+way+to+meet+the+LGPL&amp;rft.description=Our+new+way+to+meet+the+LGPL&amp;rft.identifier=https%3A%2F%2Fweb.archive.org%2Fweb%2F20140413195014%2Fhttp%3A%2F%2Fblog.linuxgamepublishing.com%2F2009%2F02%2F08%2Four-new-way-to-meet-the-lgpl%2F&amp;rft.creator=Eskild%26%2332%3BHustvedt&amp;rft.date=2009-02-08&amp;rft.source=http&#58;//blog.linuxgamepublishing.com/2009/02/08/our-new-way-to-meet-the-lgpl/&amp;rft.language=englisch">&#160;</span></span> </li> <li id="cite_note-jones-6"><span class="mw-cite-backlink"><a href="#cite_ref-jones_6-0">↑</a></span> <span class="reference-text"><span class="cite">Evan&#32;Jones:&#32;<a rel="nofollow" class="external text" href="http://www.evanjones.ca/portable-linux-binaries.html"><i>Portable Linux Binaries.</i></a>&#32;13.&#160;Februar 2008&#44;<span class="Abrufdatum">&#32;abgerufen am 10.&#160;Januar 2012</span>&#32;(englisch)&#58;&#32;„<i>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. […]</i>“</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AProgrammbibliothek&amp;rft.title=Portable+Linux+Binaries&amp;rft.description=Portable+Linux+Binaries&amp;rft.identifier=&amp;rft.creator=Evan%26%2332%3BJones&amp;rft.date=2008-02-13&amp;rft.language=englisch">&#160;</span></span> </li> <li id="cite_note-baus-7"><span class="mw-cite-backlink"><a href="#cite_ref-baus_7-0">↑</a></span> <span class="reference-text"><span class="cite">Christoph&#32;Baus:&#32;<a rel="nofollow" class="external text" href="https://web.archive.org/web/20100210063024/http://www.baus.net/statically-linking-libstdc++"><i>Yet another Unix nightmare: statically linking libstdc++.</i></a>&#32;31.&#160;Mai 2005,&#32;archiviert&#32;vom&#32;<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r235239667"><span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=http%3A%2F%2Fwww.baus.net%2Fstatically-linking-libstdc%2B%2B">Original</a></span>&#32;am&#32;<span style="white-space:nowrap;">10.&#160;Februar 2010</span><span>;</span><span class="Abrufdatum">&#32;abgerufen am 15.&#160;Januar 2012</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AProgrammbibliothek&amp;rft.title=Yet+another+Unix+nightmare%3A+statically+linking+libstdc%2B%2B&amp;rft.description=Yet+another+Unix+nightmare%3A+statically+linking+libstdc%2B%2B&amp;rft.identifier=https%3A%2F%2Fweb.archive.org%2Fweb%2F20100210063024%2Fhttp%3A%2F%2Fwww.baus.net%2Fstatically-linking-libstdc%2B%2B&amp;rft.creator=Christoph%26%2332%3BBaus&amp;rft.date=2005-05-31&amp;rft.source=http&#58;//www.baus.net/statically-linking-libstdc++&amp;rft.language=englisch">&#160;</span></span> </li> <li id="cite_note-drepper-8"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-drepper_8-0">a</a></sup> <sup><a href="#cite_ref-drepper_8-1">b</a></sup></span> <span class="reference-text"><span class="cite"><a href="/wiki/Ulrich_Drepper" title="Ulrich Drepper">Ulrich Drepper</a>:&#32;<a rel="nofollow" class="external text" href="https://web.archive.org/web/20100527213559/http://people.redhat.com/drepper/no_static_linking.html"><i>Static Linking Considered Harmful.</i></a>&#32;<a href="/wiki/Red_Hat_Linux" title="Red Hat Linux">redhat.com</a>,&#32;archiviert&#32;vom&#32;<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r235239667"><span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=http%3A%2F%2Fpeople.redhat.com%2Fdrepper%2Fno_static_linking.html">Original</a></span>&#32;am&#32;<span style="white-space:nowrap;">27.&#160;Mai 2010</span><span>;</span><span class="Abrufdatum">&#32;abgerufen am 13.&#160;Januar 2012</span>&#32;(englisch)&#58;&#32;„<i>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. […]</i>“</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AProgrammbibliothek&amp;rft.title=Static+Linking+Considered+Harmful&amp;rft.description=Static+Linking+Considered+Harmful&amp;rft.identifier=https%3A%2F%2Fweb.archive.org%2Fweb%2F20100527213559%2Fhttp%3A%2F%2Fpeople.redhat.com%2Fdrepper%2Fno_static_linking.html&amp;rft.creator=%5B%5BUlrich+Drepper%5D%5D&amp;rft.publisher=%5B%5BRed+Hat+Linux%7Credhat.com%5D%5D&amp;rft.date=&amp;rft.source=http&#58;//people.redhat.com/drepper/no_static_linking.html&amp;rft.language=englisch">&#160;</span></span> </li> <li id="cite_note-binaryproblems-9"><span class="mw-cite-backlink"><a href="#cite_ref-binaryproblems_9-0">↑</a></span> <span class="reference-text"><span class="cite">Mike&#32;Hearn:&#32;<a rel="nofollow" class="external text" href="https://web.archive.org/web/20090518100250/http://trac.autopackage.org/wiki/LinuxProblems"><i>Random Collection of Current Linux Problems Binary Portability.</i></a>&#32;<a href="/wiki/Autopackage" title="Autopackage">Autopackage</a>.org,&#32;2006,&#32;archiviert&#32;vom&#32;<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r235239667"><span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=http%3A%2F%2Ftrac.autopackage.org%2Fwiki%2FLinuxProblems">Original</a></span>&#32;am&#32;<span style="white-space:nowrap;">18.&#160;Mai 2009</span><span>;</span><span class="Abrufdatum">&#32;abgerufen am 23.&#160;Januar 2012</span>&#32;(englisch)&#58;&#32;„<i>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.</i>“</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AProgrammbibliothek&amp;rft.title=Random+Collection+of+Current+Linux+Problems+Binary+Portability&amp;rft.description=Random+Collection+of+Current+Linux+Problems+Binary+Portability&amp;rft.identifier=https%3A%2F%2Fweb.archive.org%2Fweb%2F20090518100250%2Fhttp%3A%2F%2Ftrac.autopackage.org%2Fwiki%2FLinuxProblems&amp;rft.creator=Mike%26%2332%3BHearn&amp;rft.publisher=%5B%5BAutopackage%5D%5D.org&amp;rft.date=2006&amp;rft.source=http&#58;//trac.autopackage.org/wiki/LinuxProblems&amp;rft.language=englisch">&#160;</span></span> </li> <li id="cite_note-troy-10"><span class="mw-cite-backlink"><a href="#cite_ref-troy_10-0">↑</a></span> <span class="reference-text"><span class="cite">Troy&#32;Hepfner:&#32;<a rel="nofollow" class="external text" href="https://web.archive.org/web/20071013034536/http://www.gamedev.net/reference/programming/features/linuxprogramming2/page2.asp"><i>Linux Game Development Part 2 – Distributable Binaries.</i></a>&#32;gamedev.net,&#32;1.&#160;Oktober 2007,&#32;archiviert&#32;vom&#32;<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r235239667"><span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=http%3A%2F%2Fwww.gamedev.net%2Freference%2Fprogramming%2Ffeatures%2Flinuxprogramming2%2Fpage2.asp">Original</a></span>&#32;am&#32;<span style="white-space:nowrap;">13.&#160;Oktober 2007</span><span>;</span><span class="Abrufdatum">&#32;abgerufen am 19.&#160;Dezember 2011</span>&#32;(englisch)&#58;&#32;„<i>Creating an executable that works on almost all Linux distributions is a challenge. There are a number of factors that contribute to the problem […]</i>“</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AProgrammbibliothek&amp;rft.title=Linux+Game+Development+Part+2+%E2%80%93+Distributable+Binaries&amp;rft.description=Linux+Game+Development+Part+2+%E2%80%93+Distributable+Binaries&amp;rft.identifier=https%3A%2F%2Fweb.archive.org%2Fweb%2F20071013034536%2Fhttp%3A%2F%2Fwww.gamedev.net%2Freference%2Fprogramming%2Ffeatures%2Flinuxprogramming2%2Fpage2.asp&amp;rft.creator=Troy%26%2332%3BHepfner&amp;rft.publisher=gamedev.net&amp;rft.date=2007-10-01&amp;rft.source=http&#58;//www.gamedev.net/reference/programming/features/linuxprogramming2/page2.asp&amp;rft.language=englisch">&#160;</span></span> </li> <li id="cite_note-portableapps-11"><span class="mw-cite-backlink"><a href="#cite_ref-portableapps_11-0">↑</a></span> <span class="reference-text"><span class="cite">Simon&#32;Peter:&#32;<a rel="nofollow" class="external text" href="https://web.archive.org/web/20101129031656/http://portablelinuxapps.org/docs/1.0/AppImageKit.pdf"><i>AppImageKit Documentation 1.0.</i></a>&#32;(PDF; 38&#160;kB)&#32;PortableLinuxApps.org,&#32;2010,&#32;<span style="white-space:nowrap;">S.&#32;2–3</span>,&#32;archiviert&#32;vom&#32;<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r235239667"><span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=http%3A%2F%2Fportablelinuxapps.org%2Fdocs%2F1.0%2FAppImageKit.pdf">Original</a></span>&#32;am&#32;<span style="white-space:nowrap;">29.&#160;November 2010</span><span>;</span><span class="Abrufdatum">&#32;abgerufen am 29.&#160;Juli 2011</span>&#32;(englisch)&#58;&#32;„<i>Not easy to move an app from one machine to another</i>“</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AProgrammbibliothek&amp;rft.title=AppImageKit+Documentation+1.0&amp;rft.description=AppImageKit+Documentation+1.0&amp;rft.identifier=https%3A%2F%2Fweb.archive.org%2Fweb%2F20101129031656%2Fhttp%3A%2F%2Fportablelinuxapps.org%2Fdocs%2F1.0%2FAppImageKit.pdf&amp;rft.creator=Simon%26%2332%3BPeter&amp;rft.publisher=PortableLinuxApps.org&amp;rft.date=2010&amp;rft.source=http&#58;//portablelinuxapps.org/docs/1.0/AppImageKit.pdf&amp;rft.language=englisch">&#160;</span></span> </li> </ol> <div class="hintergrundfarbe1 rahmenfarbe1 navigation-not-searchable normdaten-typ-s" style="border-style: solid; border-width: 1px; clear: left; margin-bottom:1em; margin-top:1em; padding: 0.25em; overflow: hidden; word-break: break-word; word-wrap: break-word;" id="normdaten"> <div style="display: table-cell; vertical-align: middle; width: 100%;"> <div> Normdaten&#160;(Sachbegriff): <a href="/wiki/Gemeinsame_Normdatei" title="Gemeinsame Normdatei">GND</a>: <span class="plainlinks-print"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/4121521-7">4121521-7</a></span> <span class="noprint">(<a rel="nofollow" class="external text" href="https://lobid.org/gnd/4121521-7">lobid</a>, <a rel="nofollow" class="external text" href="https://swb.bsz-bw.de/DB=2.104/SET=1/TTL=1/CMD?retrace=0&amp;trm_old=&amp;ACT=SRCHA&amp;IKT=2999&amp;SRT=RLV&amp;TRM=4121521-7">OGND</a><span class="metadata">, <a rel="nofollow" class="external text" href="https://prometheus.lmu.de/gnd/4121521-7">AKS</a></span>)</span> <span class="metadata"></span></div> </div></div></div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Abgerufen von „<a dir="ltr" href="https://de.wikipedia.org/w/index.php?title=Programmbibliothek&amp;oldid=246067119">https://de.wikipedia.org/w/index.php?title=Programmbibliothek&amp;oldid=246067119</a>“</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Wikipedia:Kategorien" title="Wikipedia:Kategorien">Kategorie</a>: <ul><li><a href="/wiki/Kategorie:Programmbibliothek" title="Kategorie:Programmbibliothek">Programmbibliothek</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Versteckte Kategorien: <ul><li><a href="/wiki/Kategorie:Wikipedia:Vorlagenfehler/Vorlage:Cite_web/tempor%C3%A4r" title="Kategorie:Wikipedia:Vorlagenfehler/Vorlage:Cite web/temporär">Wikipedia:Vorlagenfehler/Vorlage:Cite web/temporär</a></li><li><a href="/wiki/Kategorie:MediaWiki:Gadget/annotationPair" title="Kategorie:MediaWiki:Gadget/annotationPair">MediaWiki:Gadget/annotationPair</a></li></ul></div></div> </div> </div> <div id="mw-navigation"> <h2>Navigationsmenü</h2> <div id="mw-head"> <nav id="p-personal" class="mw-portlet mw-portlet-personal vector-user-menu-legacy vector-menu" aria-labelledby="p-personal-label" > <h3 id="p-personal-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Meine Werkzeuge</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anonuserpage" class="mw-list-item"><span title="Benutzerseite der IP-Adresse, von der aus du Änderungen durchführst">Nicht angemeldet</span></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Spezial:Meine_Diskussionsseite" title="Diskussion über Änderungen von dieser IP-Adresse [n]" accesskey="n"><span>Diskussionsseite</span></a></li><li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Spezial:Meine_Beitr%C3%A4ge" title="Eine Liste der Bearbeitungen, die von dieser IP-Adresse gemacht wurden [y]" accesskey="y"><span>Beiträge</span></a></li><li id="pt-createaccount" class="mw-list-item"><a href="/w/index.php?title=Spezial:Benutzerkonto_anlegen&amp;returnto=Programmbibliothek" title="Wir ermutigen dich dazu, ein Benutzerkonto zu erstellen und dich anzumelden. Es ist jedoch nicht zwingend erforderlich."><span>Benutzerkonto erstellen</span></a></li><li id="pt-login" class="mw-list-item"><a href="/w/index.php?title=Spezial:Anmelden&amp;returnto=Programmbibliothek" title="Anmelden ist zwar keine Pflicht, wird aber gerne gesehen. [o]" accesskey="o"><span>Anmelden</span></a></li> </ul> </div> </nav> <div id="left-navigation"> <nav id="p-namespaces" class="mw-portlet mw-portlet-namespaces vector-menu-tabs vector-menu-tabs-legacy vector-menu" aria-labelledby="p-namespaces-label" > <h3 id="p-namespaces-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Namensräume</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected mw-list-item"><a href="/wiki/Programmbibliothek" title="Seiteninhalt anzeigen [c]" accesskey="c"><span>Artikel</span></a></li><li id="ca-talk" class="mw-list-item"><a href="/wiki/Diskussion:Programmbibliothek" rel="discussion" title="Diskussion zum Seiteninhalt [t]" accesskey="t"><span>Diskussion</span></a></li> </ul> </div> </nav> <nav id="p-variants" class="mw-portlet mw-portlet-variants emptyPortlet vector-menu-dropdown vector-menu" aria-labelledby="p-variants-label" > <input type="checkbox" id="p-variants-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-variants" class="vector-menu-checkbox" aria-labelledby="p-variants-label" > <label id="p-variants-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Deutsch</span> </label> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </nav> </div> <div id="right-navigation"> <nav id="p-views" class="mw-portlet mw-portlet-views vector-menu-tabs vector-menu-tabs-legacy vector-menu" aria-labelledby="p-views-label" > <h3 id="p-views-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Ansichten</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected mw-list-item"><a href="/wiki/Programmbibliothek"><span>Lesen</span></a></li><li id="ca-ve-edit" class="mw-list-item"><a href="/w/index.php?title=Programmbibliothek&amp;veaction=edit" title="Diese Seite mit dem VisualEditor bearbeiten [v]" accesskey="v"><span>Bearbeiten</span></a></li><li id="ca-edit" class="collapsible mw-list-item"><a href="/w/index.php?title=Programmbibliothek&amp;action=edit" title="Den Quelltext dieser Seite bearbeiten [e]" accesskey="e"><span>Quelltext bearbeiten</span></a></li><li id="ca-history" class="mw-list-item"><a href="/w/index.php?title=Programmbibliothek&amp;action=history" title="Frühere Versionen dieser Seite [h]" accesskey="h"><span>Versionsgeschichte</span></a></li> </ul> </div> </nav> <nav id="p-cactions" class="mw-portlet mw-portlet-cactions emptyPortlet vector-menu-dropdown vector-menu" aria-labelledby="p-cactions-label" title="Weitere Optionen" > <input type="checkbox" id="p-cactions-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-cactions" class="vector-menu-checkbox" aria-labelledby="p-cactions-label" > <label id="p-cactions-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Weitere</span> </label> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </nav> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <h3 >Suche</h3> <form action="/w/index.php" id="searchform" class="vector-search-box-form"> <div id="simpleSearch" class="vector-search-box-inner" data-search-loc="header-navigation"> <input class="vector-search-box-input" type="search" name="search" placeholder="Wikipedia durchsuchen" aria-label="Wikipedia durchsuchen" autocapitalize="sentences" title="Durchsuche die Wikipedia [f]" accesskey="f" id="searchInput" > <input type="hidden" name="title" value="Spezial:Suche"> <input id="mw-searchButton" class="searchButton mw-fallbackSearchButton" type="submit" name="fulltext" title="Suche nach Seiten, die diesen Text enthalten" value="Suchen"> <input id="searchButton" class="searchButton" type="submit" name="go" title="Gehe direkt zu der Seite mit genau diesem Namen, falls sie vorhanden ist." value="Artikel"> </div> </form> </div> </div> </div> <div id="mw-panel" class="vector-legacy-sidebar"> <div id="p-logo" role="banner"> <a class="mw-wiki-logo" href="/wiki/Wikipedia:Hauptseite" title="Hauptseite"></a> </div> <nav id="p-navigation" class="mw-portlet mw-portlet-navigation vector-menu-portal portal vector-menu" aria-labelledby="p-navigation-label" > <h3 id="p-navigation-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Navigation</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Wikipedia:Hauptseite" title="Hauptseite besuchen [z]" accesskey="z"><span>Hauptseite</span></a></li><li id="n-topics" class="mw-list-item"><a href="/wiki/Portal:Wikipedia_nach_Themen"><span>Themenportale</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Spezial:Zuf%C3%A4llige_Seite" title="Zufällige Seite aufrufen [x]" accesskey="x"><span>Zufälliger Artikel</span></a></li> </ul> </div> </nav> <nav id="p-Mitmachen" class="mw-portlet mw-portlet-Mitmachen vector-menu-portal portal vector-menu" aria-labelledby="p-Mitmachen-label" > <h3 id="p-Mitmachen-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Mitmachen</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-Artikel-verbessern" class="mw-list-item"><a href="/wiki/Wikipedia:Beteiligen"><span>Artikel verbessern</span></a></li><li id="n-Neuerartikel" class="mw-list-item"><a href="/wiki/Hilfe:Neuen_Artikel_anlegen"><span>Neuen Artikel anlegen</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Autorenportal" title="Info-Zentrum über Beteiligungsmöglichkeiten"><span>Autorenportal</span></a></li><li id="n-help" class="mw-list-item"><a href="/wiki/Hilfe:%C3%9Cbersicht" title="Übersicht über Hilfeseiten"><span>Hilfe</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Spezial:Letzte_%C3%84nderungen" title="Liste der letzten Änderungen in Wikipedia [r]" accesskey="r"><span>Letzte Änderungen</span></a></li><li id="n-contact" class="mw-list-item"><a href="/wiki/Wikipedia:Kontakt" title="Kontaktmöglichkeiten"><span>Kontakt</span></a></li><li id="n-sitesupport" class="mw-list-item"><a href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_de.wikipedia.org&amp;uselang=de" title="Unterstütze uns"><span>Spenden</span></a></li> </ul> </div> </nav> <nav id="p-tb" class="mw-portlet mw-portlet-tb vector-menu-portal portal vector-menu" aria-labelledby="p-tb-label" > <h3 id="p-tb-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Werkzeuge</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Spezial:Linkliste/Programmbibliothek" title="Liste aller Seiten, die hierher verlinken [j]" accesskey="j"><span>Links auf diese Seite</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Spezial:%C3%84nderungen_an_verlinkten_Seiten/Programmbibliothek" rel="nofollow" title="Letzte Änderungen an Seiten, die von hier verlinkt sind [k]" accesskey="k"><span>Änderungen an verlinkten Seiten</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Spezial:Spezialseiten" title="Liste aller Spezialseiten [q]" accesskey="q"><span>Spezialseiten</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Programmbibliothek&amp;oldid=246067119" title="Dauerhafter Link zu dieser Seitenversion"><span>Permanenter Link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Programmbibliothek&amp;action=info" title="Weitere Informationen über diese Seite"><span>Seiten­­informationen</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Spezial:Zitierhilfe&amp;page=Programmbibliothek&amp;id=246067119&amp;wpFormIdentifier=titleform" title="Hinweise, wie diese Seite zitiert werden kann"><span>Artikel zitieren</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Spezial:URL-K%C3%BCrzung&amp;url=https%3A%2F%2Fde.wikipedia.org%2Fwiki%2FProgrammbibliothek"><span>Kurzlink</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Spezial:QrCode&amp;url=https%3A%2F%2Fde.wikipedia.org%2Fwiki%2FProgrammbibliothek"><span>QR-Code herunterladen</span></a></li> </ul> </div> </nav> <nav id="p-coll-print_export" class="mw-portlet mw-portlet-coll-print_export vector-menu-portal portal vector-menu" aria-labelledby="p-coll-print_export-label" > <h3 id="p-coll-print_export-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Drucken/​exportieren</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Spezial:DownloadAsPdf&amp;page=Programmbibliothek&amp;action=show-download-screen"><span>Als PDF herunterladen</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Programmbibliothek&amp;printable=yes" title="Druckansicht dieser Seite [p]" accesskey="p"><span>Druckversion</span></a></li> </ul> </div> </nav> <nav id="p-wikibase-otherprojects" class="mw-portlet mw-portlet-wikibase-otherprojects vector-menu-portal portal vector-menu" aria-labelledby="p-wikibase-otherprojects-label" > <h3 id="p-wikibase-otherprojects-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">In anderen Projekten</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Category:Computer_libraries" hreflang="en"><span>Commons</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q188860" title="Link zum verbundenen Objekt im Datenrepositorium [g]" accesskey="g"><span>Wikidata-Datenobjekt</span></a></li> </ul> </div> </nav> <nav id="p-lang" class="mw-portlet mw-portlet-lang vector-menu-portal portal vector-menu" aria-labelledby="p-lang-label" > <h3 id="p-lang-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">In anderen Sprachen</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D9%85%D9%83%D8%AA%D8%A8%D8%A9_%D8%A8%D8%B1%D9%85%D8%AC%D9%8A%D8%A9" title="مكتبة برمجية – Arabisch" lang="ar" hreflang="ar" data-title="مكتبة برمجية" data-language-autonym="العربية" data-language-local-name="Arabisch" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-az mw-list-item"><a href="https://az.wikipedia.org/wiki/Kitabxana_(informatika)" title="Kitabxana (informatika) – Aserbaidschanisch" lang="az" hreflang="az" data-title="Kitabxana (informatika)" data-language-autonym="Azərbaycanca" data-language-local-name="Aserbaidschanisch" class="interlanguage-link-target"><span>Azərbaycanca</span></a></li><li class="interlanguage-link interwiki-be mw-list-item"><a href="https://be.wikipedia.org/wiki/%D0%91%D1%96%D0%B1%D0%BB%D1%96%D1%8F%D1%82%D1%8D%D0%BA%D0%B0_(%D0%BF%D1%80%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%B0%D0%B2%D0%B0%D0%BD%D0%BD%D0%B5)" title="Бібліятэка (праграмаванне) – Belarussisch" lang="be" hreflang="be" data-title="Бібліятэка (праграмаванне)" data-language-autonym="Беларуская" data-language-local-name="Belarussisch" class="interlanguage-link-target"><span>Беларуская</span></a></li><li class="interlanguage-link interwiki-bg mw-list-item"><a href="https://bg.wikipedia.org/wiki/%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B8%D1%80%D0%B0%D0%BD%D0%B5)" title="Библиотека (програмиране) – Bulgarisch" lang="bg" hreflang="bg" data-title="Библиотека (програмиране)" data-language-autonym="Български" data-language-local-name="Bulgarisch" class="interlanguage-link-target"><span>Български</span></a></li><li class="interlanguage-link interwiki-bs mw-list-item"><a href="https://bs.wikipedia.org/wiki/Biblioteka_(ra%C4%8Dunarstvo)" title="Biblioteka (računarstvo) – Bosnisch" lang="bs" hreflang="bs" data-title="Biblioteka (računarstvo)" data-language-autonym="Bosanski" data-language-local-name="Bosnisch" class="interlanguage-link-target"><span>Bosanski</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/Biblioteca_inform%C3%A0tica" title="Biblioteca informàtica – Katalanisch" lang="ca" hreflang="ca" data-title="Biblioteca informàtica" data-language-autonym="Català" data-language-local-name="Katalanisch" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/Knihovna_(programov%C3%A1n%C3%AD)" title="Knihovna (programování) – Tschechisch" lang="cs" hreflang="cs" data-title="Knihovna (programování)" data-language-autonym="Čeština" data-language-local-name="Tschechisch" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-da mw-list-item"><a href="https://da.wikipedia.org/wiki/Programbibliotek" title="Programbibliotek – Dänisch" lang="da" hreflang="da" data-title="Programbibliotek" data-language-autonym="Dansk" data-language-local-name="Dänisch" class="interlanguage-link-target"><span>Dansk</span></a></li><li class="interlanguage-link interwiki-el mw-list-item"><a href="https://el.wikipedia.org/wiki/%CE%92%CE%B9%CE%B2%CE%BB%CE%B9%CE%BF%CE%B8%CE%AE%CE%BA%CE%B7_(%CF%85%CF%80%CE%BF%CE%BB%CE%BF%CE%B3%CE%B9%CF%83%CF%84%CE%AD%CF%82)" title="Βιβλιοθήκη (υπολογιστές) – Griechisch" lang="el" hreflang="el" data-title="Βιβλιοθήκη (υπολογιστές)" data-language-autonym="Ελληνικά" data-language-local-name="Griechisch" class="interlanguage-link-target"><span>Ελληνικά</span></a></li><li class="interlanguage-link interwiki-en mw-list-item"><a href="https://en.wikipedia.org/wiki/Library_(computing)" title="Library (computing) – Englisch" lang="en" hreflang="en" data-title="Library (computing)" data-language-autonym="English" data-language-local-name="Englisch" class="interlanguage-link-target"><span>English</span></a></li><li class="interlanguage-link interwiki-eo mw-list-item"><a href="https://eo.wikipedia.org/wiki/Biblioteko_(programado)" title="Biblioteko (programado) – Esperanto" lang="eo" hreflang="eo" data-title="Biblioteko (programado)" data-language-autonym="Esperanto" data-language-local-name="Esperanto" class="interlanguage-link-target"><span>Esperanto</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Biblioteca_(inform%C3%A1tica)" title="Biblioteca (informática) – Spanisch" lang="es" hreflang="es" data-title="Biblioteca (informática)" data-language-autonym="Español" data-language-local-name="Spanisch" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-et mw-list-item"><a href="https://et.wikipedia.org/wiki/Teek" title="Teek – Estnisch" lang="et" hreflang="et" data-title="Teek" data-language-autonym="Eesti" data-language-local-name="Estnisch" class="interlanguage-link-target"><span>Eesti</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87_(%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D8%B4)" title="کتابخانه (رایانش) – Persisch" lang="fa" hreflang="fa" data-title="کتابخانه (رایانش)" data-language-autonym="فارسی" data-language-local-name="Persisch" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/Kirjasto_(tietotekniikka)" title="Kirjasto (tietotekniikka) – Finnisch" lang="fi" hreflang="fi" data-title="Kirjasto (tietotekniikka)" data-language-autonym="Suomi" data-language-local-name="Finnisch" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Biblioth%C3%A8que_logicielle" title="Bibliothèque logicielle – Französisch" lang="fr" hreflang="fr" data-title="Bibliothèque logicielle" data-language-autonym="Français" data-language-local-name="Französisch" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-ga mw-list-item"><a href="https://ga.wikipedia.org/wiki/R%C3%ADomhchl%C3%A1r_leabharlainne" title="Ríomhchlár leabharlainne – Irisch" lang="ga" hreflang="ga" data-title="Ríomhchlár leabharlainne" data-language-autonym="Gaeilge" data-language-local-name="Irisch" class="interlanguage-link-target"><span>Gaeilge</span></a></li><li class="interlanguage-link interwiki-he mw-list-item"><a href="https://he.wikipedia.org/wiki/%D7%A1%D7%A4%D7%A8%D7%99%D7%99%D7%94_(%D7%AA%D7%9B%D7%A0%D7%95%D7%AA)" title="ספרייה (תכנות) – Hebräisch" lang="he" hreflang="he" data-title="ספרייה (תכנות)" data-language-autonym="עברית" data-language-local-name="Hebräisch" class="interlanguage-link-target"><span>עברית</span></a></li><li class="interlanguage-link interwiki-hi mw-list-item"><a href="https://hi.wikipedia.org/wiki/%E0%A4%B2%E0%A4%BE%E0%A4%87%E0%A4%AC%E0%A5%8D%E0%A4%B0%E0%A5%87%E0%A4%B0%E0%A5%80_(%E0%A4%85%E0%A4%AD%E0%A4%BF%E0%A4%95%E0%A4%B2%E0%A4%A8)" title="लाइब्रेरी (अभिकलन) – Hindi" lang="hi" hreflang="hi" data-title="लाइब्रेरी (अभिकलन)" data-language-autonym="हिन्दी" data-language-local-name="Hindi" class="interlanguage-link-target"><span>हिन्दी</span></a></li><li class="interlanguage-link interwiki-hr mw-list-item"><a href="https://hr.wikipedia.org/wiki/Programska_knji%C5%BEnica" title="Programska knjižnica – Kroatisch" lang="hr" hreflang="hr" data-title="Programska knjižnica" data-language-autonym="Hrvatski" data-language-local-name="Kroatisch" class="interlanguage-link-target"><span>Hrvatski</span></a></li><li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://hu.wikipedia.org/wiki/Programk%C3%B6nyvt%C3%A1r" title="Programkönyvtár – Ungarisch" lang="hu" hreflang="hu" data-title="Programkönyvtár" data-language-autonym="Magyar" data-language-local-name="Ungarisch" class="interlanguage-link-target"><span>Magyar</span></a></li><li class="interlanguage-link interwiki-hy mw-list-item"><a href="https://hy.wikipedia.org/wiki/%D4%B3%D6%80%D5%A1%D5%A4%D5%A1%D6%80%D5%A1%D5%B6_(%D5%AE%D6%80%D5%A1%D5%A3%D6%80%D5%A1%D5%BE%D5%B8%D6%80%D5%B8%D6%82%D5%B4)" title="Գրադարան (ծրագրավորում) – Armenisch" lang="hy" hreflang="hy" data-title="Գրադարան (ծրագրավորում)" data-language-autonym="Հայերեն" data-language-local-name="Armenisch" class="interlanguage-link-target"><span>Հայերեն</span></a></li><li class="interlanguage-link interwiki-id mw-list-item"><a href="https://id.wikipedia.org/wiki/Pustaka_(perangkat_lunak)" title="Pustaka (perangkat lunak) – Indonesisch" lang="id" hreflang="id" data-title="Pustaka (perangkat lunak)" data-language-autonym="Bahasa Indonesia" data-language-local-name="Indonesisch" class="interlanguage-link-target"><span>Bahasa Indonesia</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Libreria_(software)" title="Libreria (software) – Italienisch" lang="it" hreflang="it" data-title="Libreria (software)" data-language-autonym="Italiano" data-language-local-name="Italienisch" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA" title="ライブラリ – Japanisch" lang="ja" hreflang="ja" data-title="ライブラリ" data-language-autonym="日本語" data-language-local-name="Japanisch" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-kk mw-list-item"><a href="https://kk.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D0%BB%D0%B0%D1%80_%D0%BA%D1%96%D1%82%D0%B0%D0%BF%D1%85%D0%B0%D0%BD%D0%B0%D1%81%D1%8B" title="Программалар кітапханасы – Kasachisch" lang="kk" hreflang="kk" data-title="Программалар кітапханасы" data-language-autonym="Қазақша" data-language-local-name="Kasachisch" class="interlanguage-link-target"><span>Қазақша</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC_(%EC%BB%B4%ED%93%A8%ED%8C%85)" title="라이브러리 (컴퓨팅) – Koreanisch" lang="ko" hreflang="ko" data-title="라이브러리 (컴퓨팅)" data-language-autonym="한국어" data-language-local-name="Koreanisch" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-ms mw-list-item"><a href="https://ms.wikipedia.org/wiki/Pustaka_(pengkomputeran)" title="Pustaka (pengkomputeran) – Malaiisch" lang="ms" hreflang="ms" data-title="Pustaka (pengkomputeran)" data-language-autonym="Bahasa Melayu" data-language-local-name="Malaiisch" class="interlanguage-link-target"><span>Bahasa Melayu</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/Bibliotheek_(informatica)" title="Bibliotheek (informatica) – Niederländisch" lang="nl" hreflang="nl" data-title="Bibliotheek (informatica)" data-language-autonym="Nederlands" data-language-local-name="Niederländisch" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-nn mw-list-item"><a href="https://nn.wikipedia.org/wiki/Programvarebibliotek" title="Programvarebibliotek – Norwegisch (Nynorsk)" lang="nn" hreflang="nn" data-title="Programvarebibliotek" data-language-autonym="Norsk nynorsk" data-language-local-name="Norwegisch (Nynorsk)" class="interlanguage-link-target"><span>Norsk nynorsk</span></a></li><li class="interlanguage-link interwiki-no mw-list-item"><a href="https://no.wikipedia.org/wiki/Bibliotek_(programvare)" title="Bibliotek (programvare) – Norwegisch (Bokmål)" lang="nb" hreflang="nb" data-title="Bibliotek (programvare)" data-language-autonym="Norsk bokmål" data-language-local-name="Norwegisch (Bokmål)" class="interlanguage-link-target"><span>Norsk bokmål</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/Biblioteka_programistyczna" title="Biblioteka programistyczna – Polnisch" lang="pl" hreflang="pl" data-title="Biblioteka programistyczna" data-language-autonym="Polski" data-language-local-name="Polnisch" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/Biblioteca_(computa%C3%A7%C3%A3o)" title="Biblioteca (computação) – Portugiesisch" lang="pt" hreflang="pt" data-title="Biblioteca (computação)" data-language-autonym="Português" data-language-local-name="Portugiesisch" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)" title="Библиотека (программирование) – Russisch" lang="ru" hreflang="ru" data-title="Библиотека (программирование)" data-language-autonym="Русский" data-language-local-name="Russisch" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-sk mw-list-item"><a href="https://sk.wikipedia.org/wiki/Kni%C5%BEnica_(programovanie)" title="Knižnica (programovanie) – Slowakisch" lang="sk" hreflang="sk" data-title="Knižnica (programovanie)" data-language-autonym="Slovenčina" data-language-local-name="Slowakisch" class="interlanguage-link-target"><span>Slovenčina</span></a></li><li class="interlanguage-link interwiki-sl mw-list-item"><a href="https://sl.wikipedia.org/wiki/Knji%C5%BEnica_(ra%C4%8Dunalni%C5%A1tvo)" title="Knjižnica (računalništvo) – Slowenisch" lang="sl" hreflang="sl" data-title="Knjižnica (računalništvo)" data-language-autonym="Slovenščina" data-language-local-name="Slowenisch" class="interlanguage-link-target"><span>Slovenščina</span></a></li><li class="interlanguage-link interwiki-sr mw-list-item"><a href="https://sr.wikipedia.org/wiki/%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_(%D1%80%D0%B0%D1%87%D1%83%D0%BD%D0%B0%D1%80%D1%81%D1%82%D0%B2%D0%BE)" title="Библиотека (рачунарство) – Serbisch" lang="sr" hreflang="sr" data-title="Библиотека (рачунарство)" data-language-autonym="Српски / srpski" data-language-local-name="Serbisch" class="interlanguage-link-target"><span>Српски / srpski</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/Programbibliotek" title="Programbibliotek – Schwedisch" lang="sv" hreflang="sv" data-title="Programbibliotek" data-language-autonym="Svenska" data-language-local-name="Schwedisch" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-sw mw-list-item"><a href="https://sw.wikipedia.org/wiki/Maktaba_(uhandisi_wa_programu)" title="Maktaba (uhandisi wa programu) – Suaheli" lang="sw" hreflang="sw" data-title="Maktaba (uhandisi wa programu)" data-language-autonym="Kiswahili" data-language-local-name="Suaheli" class="interlanguage-link-target"><span>Kiswahili</span></a></li><li class="interlanguage-link interwiki-ta mw-list-item"><a href="https://ta.wikipedia.org/wiki/%E0%AE%A8%E0%AE%BF%E0%AE%B0%E0%AE%B2%E0%AE%95%E0%AE%AE%E0%AF%8D" title="நிரலகம் – Tamil" lang="ta" hreflang="ta" data-title="நிரலகம்" data-language-autonym="தமிழ்" data-language-local-name="Tamil" class="interlanguage-link-target"><span>தமிழ்</span></a></li><li class="interlanguage-link interwiki-th mw-list-item"><a href="https://th.wikipedia.org/wiki/%E0%B8%84%E0%B8%A5%E0%B8%B1%E0%B8%87_(%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1)" title="คลัง (โปรแกรม) – Thailändisch" lang="th" hreflang="th" data-title="คลัง (โปรแกรม)" data-language-autonym="ไทย" data-language-local-name="Thailändisch" class="interlanguage-link-target"><span>ไทย</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/K%C3%BCt%C3%BCphane_(bilgisayar_bilimi)" title="Kütüphane (bilgisayar bilimi) – Türkisch" lang="tr" hreflang="tr" data-title="Kütüphane (bilgisayar bilimi)" data-language-autonym="Türkçe" data-language-local-name="Türkisch" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/%D0%91%D1%96%D0%B1%D0%BB%D1%96%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_%D0%BF%D1%96%D0%B4%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC" title="Бібліотека підпрограм – Ukrainisch" lang="uk" hreflang="uk" data-title="Бібліотека підпрограм" data-language-autonym="Українська" data-language-local-name="Ukrainisch" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-ur mw-list-item"><a href="https://ur.wikipedia.org/wiki/%D9%84%D8%A7%D8%A6%D8%A8%D8%B1%DB%8C%D8%B1%DB%8C_(%DA%A9%D9%85%D9%BE%DB%8C%D9%88%D9%B9%D9%86%DA%AF)" title="لائبریری (کمپیوٹنگ) – Urdu" lang="ur" hreflang="ur" data-title="لائبریری (کمپیوٹنگ)" data-language-autonym="اردو" data-language-local-name="Urdu" class="interlanguage-link-target"><span>اردو</span></a></li><li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://vi.wikipedia.org/wiki/Th%C6%B0_vi%E1%BB%87n_(m%C3%A1y_t%C3%ADnh)" title="Thư viện (máy tính) – Vietnamesisch" lang="vi" hreflang="vi" data-title="Thư viện (máy tính)" data-language-autonym="Tiếng Việt" data-language-local-name="Vietnamesisch" class="interlanguage-link-target"><span>Tiếng Việt</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/%E5%87%BD%E5%BC%8F%E5%BA%AB" title="函式庫 – Chinesisch" lang="zh" hreflang="zh" data-title="函式庫" data-language-autonym="中文" data-language-local-name="Chinesisch" class="interlanguage-link-target"><span>中文</span></a></li><li class="interlanguage-link interwiki-zh-yue mw-list-item"><a href="https://zh-yue.wikipedia.org/wiki/%E5%87%BD%E5%BC%8F%E5%BA%AB" title="函式庫 – Kantonesisch" lang="yue" hreflang="yue" data-title="函式庫" data-language-autonym="粵語" data-language-local-name="Kantonesisch" class="interlanguage-link-target"><span>粵語</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q188860#sitelinks-wikipedia" title="Links auf Artikel in anderen Sprachen bearbeiten" class="wbc-editpage">Links bearbeiten</a></span></div> </div> </nav> </div> </div> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> Diese Seite wurde zuletzt am 20. Juni 2024 um 11:45 Uhr bearbeitet.</li> <li id="footer-info-copyright"><div id="footer-info-copyright-stats" class="noprint"><a rel="nofollow" class="external text" href="https://pageviews.wmcloud.org/?pages=Programmbibliothek&amp;project=de.wikipedia.org">Abrufstatistik</a>&#160;· <a rel="nofollow" class="external text" href="https://xtools.wmcloud.org/authorship/de.wikipedia.org/Programmbibliothek?uselang=de">Autoren</a> </div><div id="footer-info-copyright-separator"><br /></div><div id="footer-info-copyright-info"> <p>Der Text ist unter der Lizenz <a rel="nofollow" class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">„Creative-Commons Namensnennung – Weitergabe unter gleichen Bedingungen“</a> verfügbar; Informationen zu den Urhebern und zum Lizenzstatus eingebundener Mediendateien (etwa Bilder oder Videos) können im Regelfall durch Anklicken dieser abgerufen werden. Möglicherweise unterliegen die Inhalte jeweils zusätzlichen Bedingungen. Durch die Nutzung dieser Website erklären Sie sich mit den <span class="plainlinks"><a class="external text" href="https://foundation.wikimedia.org/wiki/Policy:Terms_of_Use/de">Nutzungsbedingungen</a> und der <a class="external text" href="https://foundation.wikimedia.org/wiki/Policy:Privacy_policy/de">Datenschutzrichtlinie</a></span> einverstanden.<br /> </p> Wikipedia® ist eine eingetragene Marke der Wikimedia Foundation Inc.</div></li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy/de">Datenschutz</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:%C3%9Cber_Wikipedia">Über Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:Impressum">Impressum</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Verhaltenskodex</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Entwickler</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/de.wikipedia.org">Statistiken</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Stellungnahme zu Cookies</a></li> <li id="footer-places-mobileview"><a href="//de.m.wikipedia.org/w/index.php?title=Programmbibliothek&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile Ansicht</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> <script>(RLQ=window.RLQ||[]).push(function(){mw.log.warn("This page is using the deprecated ResourceLoader module \"codex-search-styles\".\n[1.43] Use a CodexModule with codexComponents to set your specific components used: https://www.mediawiki.org/wiki/Codex#Using_a_limited_subset_of_components");mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-w8xh7","wgBackendResponseTime":155,"wgPageParseReport":{"limitreport":{"cputime":"0.694","walltime":"0.787","ppvisitednodes":{"value":12706,"limit":1000000},"postexpandincludesize":{"value":94089,"limit":2097152},"templateargumentsize":{"value":61677,"limit":2097152},"expansiondepth":{"value":17,"limit":100},"expensivefunctioncount":{"value":1,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":42801,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 736.286 1 -total"," 76.12% 560.446 11 Vorlage:Cite_web"," 49.69% 365.865 11 Vorlage:Internetquelle"," 7.43% 54.709 4 Vorlage:FN"," 6.07% 44.707 31 Vorlage:Cite_book/Date"," 6.05% 44.509 55 Vorlage:Cite_book/ParamBool"," 5.38% 39.584 1 Vorlage:Normdaten"," 5.19% 38.231 44 Vorlage:Cite_book/URL"," 4.32% 31.793 1 Vorlage:Wikidata-Registrierung"," 4.20% 30.897 1 Vorlage:EnS"]},"scribunto":{"limitreport-timeusage":{"value":"0.357","limit":"10.000"},"limitreport-memusage":{"value":3886047,"limit":52428800}},"cachereport":{"origin":"mw-web.eqiad.main-5dc468848-jz2bg","timestamp":"20241122062152","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Programmbibliothek","url":"https:\/\/de.wikipedia.org\/wiki\/Programmbibliothek","sameAs":"http:\/\/www.wikidata.org\/entity\/Q188860","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q188860","author":{"@type":"Organization","name":"Autoren der Wikimedia-Projekte"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2004-05-08T11:09:03Z","headline":"Sammlung von Unterprogrammen\/-Routinen"}</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10