CINXE.COM
Knihovna (programování) – Wikipedie
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-disabled skin-theme-clientpref-day vector-toc-available" lang="cs" dir="ltr"> <head> <meta charset="UTF-8"> <title>Knihovna (programování) – Wikipedie</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-disabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )cswikimwclientpreferences=([^;]+)/);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":"ČSN basic dt","wgMonthNames":["","leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"],"wgRequestId":"6e0991ac-cbd0-4d71-8e5a-3edeb84de5ec","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Knihovna_(programování)","wgTitle":"Knihovna (programování)","wgCurRevisionId":23781717,"wgRevisionId":23781717,"wgArticleId":70505,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Údržba:Články s dočasně použitou šablonou","Monitoring:Články s identifikátorem NKC","Monitoring:Články s identifikátorem GND","Monitoring:Články s identifikátorem LCCN","Monitoring:Články s identifikátorem NLI","Programové knihovny","Programování","Systémový software"],"wgPageViewLanguage":"cs","wgPageContentLanguage":"cs","wgPageContentModel":"wikitext","wgRelevantPageName": "Knihovna_(programování)","wgRelevantArticleId":70505,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"cs","pageLanguageDir":"ltr","pageVariantFallbacks":"cs"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":true,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":20000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q188860","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"], "GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":true,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","ext.pygments":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","ext.pygments.view","site","mediawiki.page.ready","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.WikiMiniAtlas","ext.gadget.OSMmapa","ext.gadget.direct-links-to-commons","ext.gadget.ReferenceTooltips","ext.gadget.courses", "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.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","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=cs&modules=ext.cite.styles%7Cext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=cs&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=cs&modules=site.styles&only=styles&skin=vector-2022"> <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="Knihovna (programování) – Wikipedie"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//cs.m.wikipedia.org/wiki/Knihovna_(programov%C3%A1n%C3%AD)"> <link rel="alternate" type="application/x-wiki" title="Editovat" href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&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="Wikipedie (cs)"> <link rel="EditURI" type="application/rsd+xml" href="//cs.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://cs.wikipedia.org/wiki/Knihovna_(programov%C3%A1n%C3%AD)"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.cs"> <link rel="alternate" type="application/atom+xml" title="Atom kanál Wikipedie." href="/w/index.php?title=Speci%C3%A1ln%C3%AD:Posledn%C3%AD_zm%C4%9Bny&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Knihovna_programování rootpage-Knihovna_programování skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Přeskočit na obsah</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Projekt"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Hlavní menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Hlavní menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Hlavní menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">přesunout do postranního panelu</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">skrýt</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigace </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage" class="mw-list-item"><a href="/wiki/Hlavn%C3%AD_strana" title="Navštívit Hlavní stranu [z]" accesskey="z"><span>Hlavní strana</span></a></li><li id="n-help" class="mw-list-item"><a href="/wiki/N%C3%A1pov%C4%9Bda:Obsah" title="Místo, kde najdete pomoc"><span>Nápověda</span></a></li><li id="n-helpdesk" class="mw-list-item"><a href="/wiki/Wikipedie:Pot%C5%99ebuji_pomoc" title="Pokud si nevíte rady, zeptejte se ostatních"><span>Potřebuji pomoc</span></a></li><li id="n-featuredcontent" class="mw-list-item"><a href="/wiki/Wikipedie:Nejlep%C5%A1%C3%AD_%C4%8Dl%C3%A1nky" title="Přehled článků, které jsou považovány za nejlepší na české Wikipedii"><span>Nejlepší články</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Speci%C3%A1ln%C3%AD:N%C3%A1hodn%C3%A1_str%C3%A1nka" title="Přejít na náhodně vybranou stránku [x]" accesskey="x"><span>Náhodný článek</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Speci%C3%A1ln%C3%AD:Posledn%C3%AD_zm%C4%9Bny" title="Seznam posledních změn na této wiki [r]" accesskey="r"><span>Poslední změny</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedie:Port%C3%A1l_Wikipedie" title="O projektu, jak můžete pomoci, kde hledat"><span>Komunitní portál</span></a></li><li id="n-villagepump" class="mw-list-item"><a href="/wiki/Wikipedie:Pod_l%C3%ADpou" title="Hlavní diskusní fórum"><span>Pod lípou</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Hlavn%C3%AD_strana" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedie" src="/static/images/mobile/copyright/wikipedia-wordmark-cs.svg" style="width: 7.5em; height: 1.1875em;"> <img class="mw-logo-tagline" alt="Wikipedie: Otevřená encyklopedie" src="/static/images/mobile/copyright/wikipedia-tagline-cs.svg" width="118" height="13" style="width: 7.375em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Speci%C3%A1ln%C3%AD:Hled%C3%A1n%C3%AD" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Prohledat tuto wiki [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Hledání</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Hledat na Wikipedii" aria-label="Hledat na Wikipedii" autocapitalize="sentences" title="Prohledat tuto wiki [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Speciální:Hledání"> </div> <button class="cdx-button cdx-search-input__end-button">Hledat</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Osobní nástroje"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Vzhled"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Změnit vzhled velikosti písma, šířky stránky a barvy" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Vzhled" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Vzhled</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_cs.wikipedia.org&uselang=cs" class=""><span>Podpořte Wikipedii</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Speci%C3%A1ln%C3%AD:Vytvo%C5%99it_%C3%BA%C4%8Det&returnto=Knihovna+%28programov%C3%A1n%C3%AD%29" title="Doporučujeme vytvořit si účet a přihlásit se, ovšem není to povinné" class=""><span>Vytvoření účtu</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Speci%C3%A1ln%C3%AD:P%C5%99ihl%C3%A1sit&returnto=Knihovna+%28programov%C3%A1n%C3%AD%29" title="Doporučujeme vám přihlásit se, ovšem není to povinné. [o]" accesskey="o" class=""><span>Přihlášení</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Další možnosti" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Osobní nástroje" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Osobní nástroje</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="Uživatelské menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_cs.wikipedia.org&uselang=cs"><span>Podpořte Wikipedii</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Speci%C3%A1ln%C3%AD:Vytvo%C5%99it_%C3%BA%C4%8Det&returnto=Knihovna+%28programov%C3%A1n%C3%AD%29" title="Doporučujeme vytvořit si účet a přihlásit se, ovšem není to povinné"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Vytvoření účtu</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Speci%C3%A1ln%C3%AD:P%C5%99ihl%C3%A1sit&returnto=Knihovna+%28programov%C3%A1n%C3%AD%29" title="Doporučujeme vám přihlásit se, ovšem není to povinné. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Přihlášení</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Stránky pro odhlášené editory <a href="/wiki/N%C3%A1pov%C4%9Bda:%C3%9Avod" aria-label="Více informací o editování"><span>dozvědět se více</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Speci%C3%A1ln%C3%AD:Moje_p%C5%99%C3%ADsp%C4%9Bvky" title="Seznam editací provedených z této IP adresy [y]" accesskey="y"><span>Příspěvky</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Speci%C3%A1ln%C3%AD:Moje_diskuse" title="Diskuse o editacích provedených z této IP adresy [n]" accesskey="n"><span>Diskuse</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Projekt"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Obsah" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Obsah</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">přesunout do postranního panelu</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">skrýt</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(úvod)</div> </a> </li> <li id="toc-Historie" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Historie"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Historie</span> </div> </a> <ul id="toc-Historie-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Typy_knihoven" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Typy_knihoven"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Typy knihoven</span> </div> </a> <ul id="toc-Typy_knihoven-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Statické_knihovny" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Statické_knihovny"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Statické knihovny</span> </div> </a> <ul id="toc-Statické_knihovny-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Dynamické_knihovny" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Dynamické_knihovny"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Dynamické knihovny</span> </div> </a> <button aria-controls="toc-Dynamické_knihovny-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Přepnout podsekci Dynamické knihovny</span> </button> <ul id="toc-Dynamické_knihovny-sublist" class="vector-toc-list"> <li id="toc-Zavaděč" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Zavaděč"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.1</span> <span>Zavaděč</span> </div> </a> <ul id="toc-Zavaděč-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Relokace" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Relokace"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.2</span> <span>Relokace</span> </div> </a> <ul id="toc-Relokace-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Dynamic_loading" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Dynamic_loading"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.3</span> <span>Dynamic loading</span> </div> </a> <ul id="toc-Dynamic_loading-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Sdílené_knihovny" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Sdílené_knihovny"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Sdílené knihovny</span> </div> </a> <button aria-controls="toc-Sdílené_knihovny-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Přepnout podsekci Sdílené knihovny</span> </button> <ul id="toc-Sdílené_knihovny-sublist" class="vector-toc-list"> <li id="toc-Podpora_v_operačních_systémech" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Podpora_v_operačních_systémech"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.1</span> <span>Podpora v operačních systémech</span> </div> </a> <ul id="toc-Podpora_v_operačních_systémech-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Správa_sdílených_knihoven" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Správa_sdílených_knihoven"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.2</span> <span>Správa sdílených knihoven</span> </div> </a> <ul id="toc-Správa_sdílených_knihoven-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Srovnání_statické_a_dynamické_knihovny" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Srovnání_statické_a_dynamické_knihovny"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Srovnání statické a dynamické knihovny</span> </div> </a> <ul id="toc-Srovnání_statické_a_dynamické_knihovny-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Návrh_knihovny" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Návrh_knihovny"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>Návrh knihovny</span> </div> </a> <ul id="toc-Návrh_knihovny-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Dynamické_knihovny_v_platformě_Linux/Unix" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Dynamické_knihovny_v_platformě_Linux/Unix"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>Dynamické knihovny v platformě Linux/Unix</span> </div> </a> <ul id="toc-Dynamické_knihovny_v_platformě_Linux/Unix-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Vytvoření_SO_pomocí_GCC" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Vytvoření_SO_pomocí_GCC"> <div class="vector-toc-text"> <span class="vector-toc-numb">9</span> <span>Vytvoření SO pomocí GCC</span> </div> </a> <ul id="toc-Vytvoření_SO_pomocí_GCC-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Příklady_různých_knihoven" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Příklady_různých_knihoven"> <div class="vector-toc-text"> <span class="vector-toc-numb">10</span> <span>Příklady různých knihoven</span> </div> </a> <ul id="toc-Příklady_různých_knihoven-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Reference" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Reference"> <div class="vector-toc-text"> <span class="vector-toc-numb">11</span> <span>Reference</span> </div> </a> <ul id="toc-Reference-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Externí_odkazy" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Externí_odkazy"> <div class="vector-toc-text"> <span class="vector-toc-numb">12</span> <span>Externí odkazy</span> </div> </a> <ul id="toc-Externí_odkazy-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Obsah" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Přepnout obsah" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Přepnout obsah</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Knihovna (programování)</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Přejděte k článku v jiném jazyce. Je dostupný v 47 jazycích" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-47" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">47 jazyků</span> </label> <div class="vector-dropdown-content"> <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="مكتبة برمجية – arabština" lang="ar" hreflang="ar" data-title="مكتبة برمجية" data-language-autonym="العربية" data-language-local-name="arabština" 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) – ázerbájdžánština" lang="az" hreflang="az" data-title="Kitabxana (informatika)" data-language-autonym="Azərbaycanca" data-language-local-name="ázerbájdžánština" 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="Бібліятэка (праграмаванне) – běloruština" lang="be" hreflang="be" data-title="Бібліятэка (праграмаванне)" data-language-autonym="Беларуская" data-language-local-name="běloruština" 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="Библиотека (програмиране) – bulharština" lang="bg" hreflang="bg" data-title="Библиотека (програмиране)" data-language-autonym="Български" data-language-local-name="bulharština" 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) – bosenština" lang="bs" hreflang="bs" data-title="Biblioteka (računarstvo)" data-language-autonym="Bosanski" data-language-local-name="bosenština" 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 – katalánština" lang="ca" hreflang="ca" data-title="Biblioteca informàtica" data-language-autonym="Català" data-language-local-name="katalánština" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-da mw-list-item"><a href="https://da.wikipedia.org/wiki/Programbibliotek" title="Programbibliotek – dánština" lang="da" hreflang="da" data-title="Programbibliotek" data-language-autonym="Dansk" data-language-local-name="dánština" class="interlanguage-link-target"><span>Dansk</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Programmbibliothek" title="Programmbibliothek – němčina" lang="de" hreflang="de" data-title="Programmbibliothek" data-language-autonym="Deutsch" data-language-local-name="němčina" class="interlanguage-link-target"><span>Deutsch</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="Βιβλιοθήκη (υπολογιστές) – řečtina" lang="el" hreflang="el" data-title="Βιβλιοθήκη (υπολογιστές)" data-language-autonym="Ελληνικά" data-language-local-name="řečtina" 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) – angličtina" lang="en" hreflang="en" data-title="Library (computing)" data-language-autonym="English" data-language-local-name="angličtina" 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) – španělština" lang="es" hreflang="es" data-title="Biblioteca (informática)" data-language-autonym="Español" data-language-local-name="španělština" 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 – estonština" lang="et" hreflang="et" data-title="Teek" data-language-autonym="Eesti" data-language-local-name="estonština" 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="کتابخانه (رایانش) – perština" lang="fa" hreflang="fa" data-title="کتابخانه (رایانش)" data-language-autonym="فارسی" data-language-local-name="perština" 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) – finština" lang="fi" hreflang="fi" data-title="Kirjasto (tietotekniikka)" data-language-autonym="Suomi" data-language-local-name="finština" 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 – francouzština" lang="fr" hreflang="fr" data-title="Bibliothèque logicielle" data-language-autonym="Français" data-language-local-name="francouzština" 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 – irština" lang="ga" hreflang="ga" data-title="Ríomhchlár leabharlainne" data-language-autonym="Gaeilge" data-language-local-name="irština" 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="ספרייה (תכנות) – hebrejština" lang="he" hreflang="he" data-title="ספרייה (תכנות)" data-language-autonym="עברית" data-language-local-name="hebrejština" 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="लाइब्रेरी (अभिकलन) – hindština" lang="hi" hreflang="hi" data-title="लाइब्रेरी (अभिकलन)" data-language-autonym="हिन्दी" data-language-local-name="hindština" 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 – chorvatština" lang="hr" hreflang="hr" data-title="Programska knjižnica" data-language-autonym="Hrvatski" data-language-local-name="chorvatština" 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 – maďarština" lang="hu" hreflang="hu" data-title="Programkönyvtár" data-language-autonym="Magyar" data-language-local-name="maďarština" 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="Գրադարան (ծրագրավորում) – arménština" lang="hy" hreflang="hy" data-title="Գրադարան (ծրագրավորում)" data-language-autonym="Հայերեն" data-language-local-name="arménština" 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) – indonéština" lang="id" hreflang="id" data-title="Pustaka (perangkat lunak)" data-language-autonym="Bahasa Indonesia" data-language-local-name="indonéština" 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) – italština" lang="it" hreflang="it" data-title="Libreria (software)" data-language-autonym="Italiano" data-language-local-name="italština" 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="ライブラリ – japonština" lang="ja" hreflang="ja" data-title="ライブラリ" data-language-autonym="日本語" data-language-local-name="japonština" 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="Программалар кітапханасы – kazaština" lang="kk" hreflang="kk" data-title="Программалар кітапханасы" data-language-autonym="Қазақша" data-language-local-name="kazaština" 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="라이브러리 (컴퓨팅) – korejština" lang="ko" hreflang="ko" data-title="라이브러리 (컴퓨팅)" data-language-autonym="한국어" data-language-local-name="korejština" 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) – malajština" lang="ms" hreflang="ms" data-title="Pustaka (pengkomputeran)" data-language-autonym="Bahasa Melayu" data-language-local-name="malajština" 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) – nizozemština" lang="nl" hreflang="nl" data-title="Bibliotheek (informatica)" data-language-autonym="Nederlands" data-language-local-name="nizozemština" 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 – norština (nynorsk)" lang="nn" hreflang="nn" data-title="Programvarebibliotek" data-language-autonym="Norsk nynorsk" data-language-local-name="norština (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) – norština (bokmål)" lang="nb" hreflang="nb" data-title="Bibliotek (programvare)" data-language-autonym="Norsk bokmål" data-language-local-name="norština (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 – polština" lang="pl" hreflang="pl" data-title="Biblioteka programistyczna" data-language-autonym="Polski" data-language-local-name="polština" 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) – portugalština" lang="pt" hreflang="pt" data-title="Biblioteca (computação)" data-language-autonym="Português" data-language-local-name="portugalština" 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="Библиотека (программирование) – ruština" lang="ru" hreflang="ru" data-title="Библиотека (программирование)" data-language-autonym="Русский" data-language-local-name="ruština" 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) – slovenština" lang="sk" hreflang="sk" data-title="Knižnica (programovanie)" data-language-autonym="Slovenčina" data-language-local-name="slovenština" 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) – slovinština" lang="sl" hreflang="sl" data-title="Knjižnica (računalništvo)" data-language-autonym="Slovenščina" data-language-local-name="slovinština" 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="Библиотека (рачунарство) – srbština" lang="sr" hreflang="sr" data-title="Библиотека (рачунарство)" data-language-autonym="Српски / srpski" data-language-local-name="srbština" 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 – švédština" lang="sv" hreflang="sv" data-title="Programbibliotek" data-language-autonym="Svenska" data-language-local-name="švédština" 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) – svahilština" lang="sw" hreflang="sw" data-title="Maktaba (uhandisi wa programu)" data-language-autonym="Kiswahili" data-language-local-name="svahilština" 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ština" lang="ta" hreflang="ta" data-title="நிரலகம்" data-language-autonym="தமிழ்" data-language-local-name="tamilština" 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="คลัง (โปรแกรม) – thajština" lang="th" hreflang="th" data-title="คลัง (โปรแกรม)" data-language-autonym="ไทย" data-language-local-name="thajština" 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) – turečtina" lang="tr" hreflang="tr" data-title="Kütüphane (bilgisayar bilimi)" data-language-autonym="Türkçe" data-language-local-name="turečtina" 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="Бібліотека підпрограм – ukrajinština" lang="uk" hreflang="uk" data-title="Бібліотека підпрограм" data-language-autonym="Українська" data-language-local-name="ukrajinština" 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="لائبریری (کمپیوٹنگ) – urdština" lang="ur" hreflang="ur" data-title="لائبریری (کمپیوٹنگ)" data-language-autonym="اردو" data-language-local-name="urdština" 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) – vietnamština" lang="vi" hreflang="vi" data-title="Thư viện (máy tính)" data-language-autonym="Tiếng Việt" data-language-local-name="vietnamština" 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="函式庫 – čínština" lang="zh" hreflang="zh" data-title="函式庫" data-language-autonym="中文" data-language-local-name="čínština" 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="函式庫 – kantonština" lang="yue" hreflang="yue" data-title="函式庫" data-language-autonym="粵語" data-language-local-name="kantonština" 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="Editovat mezijazykové odkazy" class="wbc-editpage">Upravit odkazy</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Jmenné prostory"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Knihovna_(programov%C3%A1n%C3%AD)" title="Zobrazit obsahovou stránku [c]" accesskey="c"><span>Článek</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Diskuse:Knihovna_(programov%C3%A1n%C3%AD)" rel="discussion" title="Diskuse ke stránce [t]" accesskey="t"><span>Diskuse</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Změnit variantu jazyka" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">čeština</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Zobrazení"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Knihovna_(programov%C3%A1n%C3%AD)"><span>Číst</span></a></li><li id="ca-ve-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&veaction=edit" title="Editovat tuto stránku [v]" accesskey="v"><span>Editovat</span></a></li><li id="ca-edit" class="collapsible vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&action=edit" title="Editovat zdrojový kód této stránky [e]" accesskey="e"><span>Editovat zdroj</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&action=history" title="Starší verze této stránky. [h]" accesskey="h"><span>Zobrazit historii</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Nástroje ke stránce"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Nástroje" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Nástroje</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Nástroje</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">přesunout do postranního panelu</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">skrýt</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="Další možnosti" > <div class="vector-menu-heading"> Akce </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Knihovna_(programov%C3%A1n%C3%AD)"><span>Číst</span></a></li><li id="ca-more-ve-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&veaction=edit" title="Editovat tuto stránku [v]" accesskey="v"><span>Editovat</span></a></li><li id="ca-more-edit" class="collapsible vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&action=edit" title="Editovat zdrojový kód této stránky [e]" accesskey="e"><span>Editovat zdroj</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&action=history"><span>Zobrazit historii</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> Obecné </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Speci%C3%A1ln%C3%AD:Co_odkazuje_na/Knihovna_(programov%C3%A1n%C3%AD)" title="Seznam všech wikistránek, které sem odkazují [j]" accesskey="j"><span>Odkazuje sem</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Speci%C3%A1ln%C3%AD:Souvisej%C3%ADc%C3%AD_zm%C4%9Bny/Knihovna_(programov%C3%A1n%C3%AD)" rel="nofollow" title="Nedávné změny stránek, na které je odkazováno [k]" accesskey="k"><span>Související změny</span></a></li><li id="t-upload" class="mw-list-item"><a href="//commons.wikimedia.org/wiki/Special:UploadWizard?uselang=cs" title="Nahrát obrázky či jiná multimédia [u]" accesskey="u"><span>Načíst soubor</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Speci%C3%A1ln%C3%AD:Speci%C3%A1ln%C3%AD_str%C3%A1nky" title="Seznam všech speciálních stránek [q]" accesskey="q"><span>Speciální stránky</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&oldid=23781717" title="Trvalý odkaz na současnou verzi této stránky"><span>Trvalý odkaz</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&action=info" title="Více informací o této stránce"><span>Informace o stránce</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Speci%C3%A1ln%C3%AD:Citovat&page=Knihovna_%28programov%C3%A1n%C3%AD%29&id=23781717&wpFormIdentifier=titleform" title="Informace o tom, jak citovat tuto stránku"><span>Citovat stránku</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Speci%C3%A1ln%C3%AD:UrlShortener&url=https%3A%2F%2Fcs.wikipedia.org%2Fwiki%2FKnihovna_%28programov%25C3%25A1n%25C3%25AD%29"><span>Získat zkrácené URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Speci%C3%A1ln%C3%AD:QrCode&url=https%3A%2F%2Fcs.wikipedia.org%2Fwiki%2FKnihovna_%28programov%25C3%25A1n%25C3%25AD%29"><span>Stáhnout QR kód</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Tisk/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-create_a_book" class="mw-list-item"><a href="/w/index.php?title=Speci%C3%A1ln%C3%AD:Kniha&bookcmd=book_creator&referer=Knihovna+%28programov%C3%A1n%C3%AD%29"><span>Vytvořit knihu</span></a></li><li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Speci%C3%A1ln%C3%AD:DownloadAsPdf&page=Knihovna_%28programov%C3%A1n%C3%AD%29&action=show-download-screen"><span>Stáhnout jako PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&printable=yes" title="Tato stránka v podobě vhodné k tisku [p]" accesskey="p"><span>Verze k tisku</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> Na jiných projektech </div> <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>Wikimedia 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="Odkaz na propojenou položku datového úložiště [g]" accesskey="g"><span>Položka Wikidat</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Nástroje ke stránce"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Vzhled"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Vzhled</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">přesunout do postranního panelu</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">skrýt</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">Z Wikipedie, otevřené encyklopedie</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="cs" dir="ltr"><p><b>Knihovna</b> (<a href="/wiki/Angli%C4%8Dtina" title="Angličtina">anglicky</a> <span class="cizojazycne" lang="en" title="angličtina"><i>library</i></span>) je v <a href="/wiki/Informatika" title="Informatika">informatice</a> označení pro souhrn <a href="/wiki/Podprogram" title="Podprogram">procedur</a> a <a href="/wiki/Funkce_(programov%C3%A1n%C3%AD)" class="mw-redirect" title="Funkce (programování)">funkcí</a>, často také <a href="/wiki/Konstanta_(programov%C3%A1n%C3%AD)" title="Konstanta (programování)">konstant</a> a <a href="/wiki/Datov%C3%BD_typ" title="Datový typ">datových typů</a> (v <a href="/wiki/Objektov%C4%9B_orientovan%C3%A9_programov%C3%A1n%C3%AD" title="Objektově orientované programování">objektovém programování</a> též <a href="/wiki/T%C5%99%C3%ADda_(programov%C3%A1n%C3%AD)" title="Třída (programování)">tříd</a>, <a href="/wiki/Instance_t%C5%99%C3%ADdy" title="Instance třídy">objektů</a> a zdrojů), který může být využíván více <a href="/wiki/Po%C4%8D%C3%ADta%C4%8Dov%C3%BD_program" title="Počítačový program">počítačovými programy</a>. Knihovny usnadňují <a href="/wiki/Program%C3%A1tor" title="Programátor">programátorovi</a> tvorbu <a href="/wiki/Aplika%C4%8Dn%C3%AD_program" class="mw-redirect" title="Aplikační program">aplikací</a> tím, že umožňují využití hotového kódu, použití jednou vytvořeného kódu v jiných programech; při <a href="/wiki/T%C3%BDm" title="Tým">týmové</a> práci mohou sloužit k <a href="/wiki/D%C4%9Blba_pr%C3%A1ce" title="Dělba práce">dělbě práce</a>. Knihovna poskytuje své služby navenek pomocí <a href="/wiki/API" title="API">API</a> (aplikační rozhraní), které zahrnuje názvy funkcí, předávané parametry a návratové hodnoty. Podle způsobu spojení s programem, který je používá, lze knihovny rozdělit na <a href="#Statické_knihovny">statické</a> a <a href="#Dynamické_knihovny">dynamické</a>. Z hlediska práce s kódem knihovny v <a href="/wiki/Opera%C4%8Dn%C3%AD_pam%C4%9B%C5%A5" title="Operační paměť">operační paměti</a> je dělíme na sdílené a nesdílené. </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Historie">Historie</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&veaction=edit&section=1" title="Editace sekce: Historie" class="mw-editsection-visualeditor"><span>editovat</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&action=edit&section=1" title="Editovat zdrojový kód sekce Historie"><span>editovat zdroj</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Nejstarší programové koncepty obdobné knihovnám byly vyvinuty, aby oddělily definici dat od realizace programu. Kolem roku 1959 jazyk <a href="/wiki/JOVIAL" title="JOVIAL">JOVIAL</a> zpopularizoval koncept <a href="/w/index.php?title=COMPOOL&action=edit&redlink=1" class="new" title="COMPOOL (stránka neexistuje)">COMPOOL</a> (Communication Pool). „Záměrem konceptu COMPOOL bylo povolení sdílení systémových dat mezi více programy pomocí centralizovaného popisu dat.“<sup id="cite_ref-Wexelblat_1981_369_1-0" class="reference"><a href="#cite_note-Wexelblat_1981_369-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> </p><p>V roce 1959 byly do jazyka <a href="/wiki/COBOL" title="COBOL">COBOL</a> zahrnuty „primitivní funkce knihovního systému“,<sup id="cite_ref-Wexelblat_1981_274_2-0" class="reference"><a href="#cite_note-Wexelblat_1981_274-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> které Jean Sammet ve zpětném pohledu popsal jako „nedostatečná knihovní zařízení“.<sup id="cite_ref-Wexelblat_1981_258_3-0" class="reference"><a href="#cite_note-Wexelblat_1981_258-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> </p><p>Další významné přispění k modernímu pojetí knihovny přišlo v podobě podprogramu, který byl součástí inovace jazyka <a href="/wiki/FORTRAN" class="mw-redirect" title="FORTRAN">FORTRAN</a>. Podprogramy mohou být v jazyce FORTRAN kompilovány nezávisle na sobě, ale kompilátoru chybí <a href="/wiki/Linker" title="Linker">linker</a>. Takže před zavedením modulů v jazyce Fortran-90 nebyla mezi podprogramy možná <a href="/wiki/Typov%C3%A1_kontrola" title="Typová kontrola">typová kontrola</a>.<sup id="cite_ref-Wilson_Clark_1988_126_4-0" class="reference"><a href="#cite_note-Wilson_Clark_1988_126-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> </p><p>S významným konceptem přišla též <a href="/wiki/Simula_67" title="Simula 67">Simula 67</a>. Simula byl první <a href="/wiki/Objektov%C4%9B_orientovan%C3%A9_programov%C3%A1n%C3%AD" title="Objektově orientované programování">objektově orientovaný</a> programovací jazyk a jeho třídy jsou téměř totožné s moderním pojetím, které je používáno v jazyce <a href="/wiki/Java_(programovac%C3%AD_jazyk)" title="Java (programovací jazyk)">Java</a>, <a href="/wiki/C%2B%2B" title="C++">C++</a> nebo <a href="/wiki/C_Sharp" title="C Sharp">C#</a>. Třídy konceptu Simula byly také předchůdcem balíčku v programovacím jazyku <a href="/wiki/Ada_(programovac%C3%AD_jazyk)" title="Ada (programovací jazyk)">Ada</a> a modulu v <a href="/wiki/Modula-2" title="Modula-2">Modula-2</a>.<sup id="cite_ref-Wilson_Clark_1988_52_5-0" class="reference"><a href="#cite_note-Wilson_Clark_1988_52-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> Třídy Simula mohly být zahrnuty v knihovních souborech a přidány v době kompilace, přestože byly vyvinuty už v roce 1965.<sup id="cite_ref-Wexelblat_1981_716_6-0" class="reference"><a href="#cite_note-Wexelblat_1981_716-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Typy_knihoven">Typy knihoven</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&veaction=edit&section=2" title="Editace sekce: Typy knihoven" class="mw-editsection-visualeditor"><span>editovat</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&action=edit&section=2" title="Editovat zdrojový kód sekce Typy knihoven"><span>editovat zdroj</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Knihovna je <a href="/wiki/Soubor" title="Soubor">soubor</a>, který obsahuje soubor <a href="/wiki/Funkce_(programov%C3%A1n%C3%AD)" class="mw-redirect" title="Funkce (programování)">funkcí</a> a procedur v podobě <a href="/wiki/Strojov%C3%BD_k%C3%B3d" title="Strojový kód">strojového kódu</a>, které jsou uloženy do společného souboru. Je tak vytvořen archiv, který je souhrnem <a href="/wiki/Objektov%C3%BD_k%C3%B3d" title="Objektový kód">objektových kódů</a> a se kterým lze dále pracovat. </p><p>Z technického hlediska je možné rozdělit knihovny podle způsobu propojení s programem, který je bude využívat: </p> <ul><li>statická knihovna (<a href="/wiki/Angli%C4%8Dtina" title="Angličtina">anglicky</a> <span class="cizojazycne" lang="en" title="angličtina"><i>static linking library</i></span>)</li> <li>dynamická knihovna (<a href="/wiki/Angli%C4%8Dtina" title="Angličtina">anglicky</a> <span class="cizojazycne" lang="en" title="angličtina"><i>dynamic linking library</i></span>)</li></ul> <p>Druhé možné rozdělení je z hlediska možnosti sdílení kódu knihovny mezi více běžícími programy (tj. <a href="/wiki/Proces_(informatika)" title="Proces (informatika)">procesy</a>): </p> <ul><li>sdílená knihovna (<a href="/wiki/Angli%C4%8Dtina" title="Angličtina">anglicky</a> <span class="cizojazycne" lang="en" title="angličtina"><i>shared library</i></span>)</li> <li>nesdílená knihovna</li></ul> <div class="mw-heading mw-heading2"><h2 id="Statické_knihovny"><span id="Statick.C3.A9_knihovny"></span>Statické knihovny</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&veaction=edit&section=3" title="Editace sekce: Statické knihovny" class="mw-editsection-visualeditor"><span>editovat</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&action=edit&section=3" title="Editovat zdrojový kód sekce Statické knihovny"><span>editovat zdroj</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="uvodni-upozorneni hatnote"> Podrobnější informace naleznete v článku <a href="/wiki/Statick%C3%A1_knihovna" title="Statická knihovna">Statická knihovna</a>.</div> <p>Statická knihovna tvoří s přeloženým programem kompaktní celek. V závěrečné fázi <a href="/wiki/P%C5%99eklada%C4%8D" title="Překladač">překladu</a> programu ze zdrojového kódu do <a href="/wiki/Strojov%C3%BD_k%C3%B3d" title="Strojový kód">strojového kódu</a> jsou volané funkce (a další jimi kaskádově volané funkce) připojovány <a href="/wiki/Linker" title="Linker">linkerem</a> (odtud označení <i>linkování</i>) do výsledného <a href="/wiki/Spustiteln%C3%BD_soubor" title="Spustitelný soubor">spustitelného souboru</a>. V horším případě je k programu připojena celá knihovna bez ohledu na to, jaké části program skutečně využívá. Výsledný spustitelný soubor tak v sobě obsahuje všechny části, které jsou nutné pro jeho běh. Staticky slinkovaný spustitelný soubor proto typicky při spuštění nepotřebuje žádné další soubory, takže je ho možné překopírovat na jiný systém a jednoduše spustit (tj. bez <a href="/wiki/Instalace_(software)" title="Instalace (software)">instalace</a>, tak, jak je známá například pro běžné programy v <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a>). </p><p>Typickou příponou souboru statické knihovny je <code>.lib</code> nebo <code>.a</code>. Přípona souboru s knihovnou závisí na použitém <a href="/wiki/Opera%C4%8Dn%C3%AD_syst%C3%A9m" title="Operační systém">operačním systému</a>, <a href="/wiki/Programovac%C3%AD_jazyk" title="Programovací jazyk">programovacím jazyku</a> i linkeru. Staticky jde s programem slinkovat i dynamické knihovny (přípona <code>.so</code>). </p> <div class="mw-heading mw-heading2"><h2 id="Dynamické_knihovny"><span id="Dynamick.C3.A9_knihovny"></span>Dynamické knihovny</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&veaction=edit&section=4" title="Editace sekce: Dynamické knihovny" class="mw-editsection-visualeditor"><span>editovat</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&action=edit&section=4" title="Editovat zdrojový kód sekce Dynamické knihovny"><span>editovat zdroj</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="uvodni-upozorneni hatnote"> Podrobnější informace naleznete v článku <a href="/wiki/Dynamick%C3%BD_linker" title="Dynamický linker">Dynamický linker</a>.</div> <p>Dynamické knihovny nejsou (na rozdíl od statických knihoven) k výslednému spustitelnému souboru přidávány. V závěrečné fázi <a href="/wiki/P%C5%99eklada%C4%8D" title="Překladač">překladu</a> programu ze <a href="/wiki/Zdrojov%C3%BD_k%C3%B3d" title="Zdrojový kód">zdrojového kódu</a> do <a href="/wiki/Strojov%C3%BD_k%C3%B3d" title="Strojový kód">strojového kódu</a> jsou odkazy na volané knihovní funkce pomocí <a href="/wiki/Linker" title="Linker">linkeru</a> (odtud označení <i>linkování</i>) zapsány do speciální <a href="/wiki/Tabulka_symbol%C5%AF" title="Tabulka symbolů">tabulky symbolů</a>, která je připojena k výslednému <a href="/wiki/Spustiteln%C3%BD_soubor" title="Spustitelný soubor">spustitelnému souboru</a>. Pro chod programu (tj. spuštění výsledného spustitelného souboru) je pak nutné mít k dispozici též příslušné dynamické knihovny. Pokud dynamická knihovna využívá ke své činnosti jiné dynamické knihovny, vzniká řetězec závislostí a všechny potřebné knihovny musí být při spuštění programu přítomny. </p><p>V <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a> mají dynamické knihovny příponu <code><a href="/wiki/DLL" title="DLL">.DLL</a></code>, v <a href="/wiki/UN*X" title="UN*X">unixových</a> systémech je používána přípona <code>.o</code> nebo <code>.so</code> (<a href="/wiki/Linux" title="Linux">Linux</a>). Dynamickou knihovnu je typicky možné slinkovat s programem i staticky (viz výše). </p> <div class="mw-heading mw-heading3"><h3 id="Zavaděč"><span id="Zavad.C4.9B.C4.8D"></span>Zavaděč</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&veaction=edit&section=5" title="Editace sekce: Zavaděč" class="mw-editsection-visualeditor"><span>editovat</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&action=edit&section=5" title="Editovat zdrojový kód sekce Zavaděč"><span>editovat zdroj</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="uvodni-upozorneni hatnote"> Podrobnější informace naleznete v článku <a href="/wiki/Zavad%C4%9B%C4%8D_(program)" title="Zavaděč (program)">Zavaděč (program)</a>.</div> <p>Pro propojení dynamicky linkovaného programu a dynamických knihoven je při spuštění programu používán speciální <a href="/wiki/Zavad%C4%9B%C4%8D_(program)" title="Zavaděč (program)">zavaděč</a> (<a href="/wiki/Angli%C4%8Dtina" title="Angličtina">anglicky</a> <span class="cizojazycne" lang="en" title="angličtina"><i>dynamic loader</i></span>). Do <a href="/wiki/Opera%C4%8Dn%C3%AD_pam%C4%9B%C5%A5" title="Operační paměť">operační paměti</a> je zaveden kód vlastního programu (spustitelný soubor) a též kód potřebných dynamických knihoven podle odkazů z připravené tabulky symbolů. Po rozmístění knihoven do operační paměti jsou vyčísleny odkazy z tabulky symbolů podle skutečného umístění jednotlivých částí kódu knihoven v operační paměti, čímž dojde k propojení kódu z dynamicky linkovaného spustitelného souboru s kódem dynamických knihoven. </p> <div class="mw-heading mw-heading3"><h3 id="Relokace">Relokace</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&veaction=edit&section=6" title="Editace sekce: Relokace" class="mw-editsection-visualeditor"><span>editovat</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&action=edit&section=6" title="Editovat zdrojový kód sekce Relokace"><span>editovat zdroj</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="uvodni-upozorneni hatnote"> Podrobnější informace naleznete v článku <a href="/wiki/Relokace" title="Relokace">Relokace</a>.</div> <p>Knihovny jsou typicky předem připraveny tak, aby mohly být umístěny na konkrétní místo v paměti. Pokud je toto místo již obsazeno (např. jinou knihovnou), musí být provedena <a href="/wiki/Relokace" title="Relokace">relokace</a> na volné místo, která opraví příslušné absolutní adresy použité ve strojovém kódu (v <a href="/wiki/Linux" title="Linux">Linuxu</a> mohou být optimální umístění knihoven předem připravena programem <a href="/wiki/Prelink" title="Prelink">prelink</a>, v <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a> není podobný nástroj volně k dispozici). </p> <div class="mw-heading mw-heading3"><h3 id="Dynamic_loading">Dynamic loading</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&veaction=edit&section=7" title="Editace sekce: Dynamic loading" class="mw-editsection-visualeditor"><span>editovat</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&action=edit&section=7" title="Editovat zdrojový kód sekce Dynamic loading"><span>editovat zdroj</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="uvodni-upozorneni hatnote"> Podrobnější informace naleznete v článku <a href="/wiki/Dynamic_loading" title="Dynamic loading">Dynamic loading</a>.</div> <p>Většina dnešních operačních systémů umožňuje načítat dynamické knihovny do paměti až za běhu programu, což umožňuje programy modularizovat a spouštět i v případě že při spuštění programu nejsou k dispozici všechny knihovny, které program používá (takže bude například jen omezena funkčnost programu). Toho se dá využít například k implementaci <a href="/wiki/Plug-in" class="mw-redirect" title="Plug-in">plug-inů</a>. </p> <div class="mw-heading mw-heading2"><h2 id="Sdílené_knihovny"><span id="Sd.C3.ADlen.C3.A9_knihovny"></span>Sdílené knihovny</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&veaction=edit&section=8" title="Editace sekce: Sdílené knihovny" class="mw-editsection-visualeditor"><span>editovat</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&action=edit&section=8" title="Editovat zdrojový kód sekce Sdílené knihovny"><span>editovat zdroj</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Kód sdílených knihoven je možné sdílet mezi více programy, čímž jsou efektivně snižovány nároky na velikost potřebné <a href="/wiki/Opera%C4%8Dn%C3%AD_pam%C4%9B%C5%A5" title="Operační paměť">operační paměti</a>. V takovém případě se úsek paměti s kódem knihovních funkcí nalézá ve <a href="/wiki/Sd%C3%ADlen%C3%A1_pam%C4%9B%C5%A5" title="Sdílená paměť">sdílené paměti</a>, která je přístupná více procesům (je namapována do adresních prostorů všech procesů, které ji používají). Protože knihovny typicky pracují se svými interními daty, musí být možné zajistit každé knihovně privátní datový prostor pro data pro každý proces zvlášť. Přitom se s výhodou využívají možnosti <a href="/wiki/Virtu%C3%A1ln%C3%AD_pam%C4%9B%C5%A5" title="Virtuální paměť">virtuální paměti</a>, jejíž podpora musí však být přítomna v <a href="/wiki/Mikroprocesor" title="Mikroprocesor">procesoru</a>. </p><p>Sdílet je možné jen identické knihovny. Z technického hlediska možné sdílet jen dynamické knihovny, protože jen u nich je zaručeno, že se vždy jedná o naprosto stejný kód (z principu není možné při startu programu porovnávat kód statický linkované knihovny s obsahem paměti ostatních spuštěných <a href="/wiki/Proces_(informatika)" title="Proces (informatika)">procesů</a>). Nastavení sdílení paměťového prostoru se kódem sdílených dynamických knihoven zajišťuje při startu dynamicky linkovaného programu výše zmíněný dynamický <a href="/wiki/Zavad%C4%9B%C4%8D_(program)" title="Zavaděč (program)">zavaděč</a> (<a href="/wiki/Angli%C4%8Dtina" title="Angličtina">anglicky</a> <span class="cizojazycne" lang="en" title="angličtina"><i>dynamic loader</i></span>). </p> <div class="mw-heading mw-heading3"><h3 id="Podpora_v_operačních_systémech"><span id="Podpora_v_opera.C4.8Dn.C3.ADch_syst.C3.A9mech"></span>Podpora v operačních systémech</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&veaction=edit&section=9" title="Editace sekce: Podpora v operačních systémech" class="mw-editsection-visualeditor"><span>editovat</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&action=edit&section=9" title="Editovat zdrojový kód sekce Podpora v operačních systémech"><span>editovat zdroj</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Princip sdílených dynamických knihoven je propracován zejména v <a href="/wiki/UN*X" title="UN*X">unixových systémech</a>, kde již v dobách jeho vzniku umožňoval efektivní využití drahé a poměrně malé operační paměti (v 70. a 80. letech 20. století byla operační paměť tehdejších <a href="/wiki/Mainframe" title="Mainframe">sálových počítačů</a> veliká pouze desítky <a href="/wiki/Bajt" title="Bajt">kilobajtů</a>). </p><p>V systémech <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a> je sdílení <a href="/wiki/DLL" title="DLL">DLL</a> knihoven omezeno a od <a href="/wiki/Windows_Vista" title="Windows Vista">Windows Vista</a> firma <a href="/wiki/Microsoft" title="Microsoft">Microsoft</a> doporučuje, aby každý program měl vlastní dynamické knihovny, protože ve Windows neexistuje centrální správa sdílených knihoven na úrovni systému. Tím je jejich sdílení v paměti fakticky znemožněno (i přesto, že mohou být některé identické) a proto prudce eskalovaly nároky na minimální velikost <a href="/wiki/Opera%C4%8Dn%C3%AD_pam%C4%9B%C5%A5" title="Operační paměť">operační paměti</a>. Již od počátku návrhu DLL knihoven nebylo maximální sdílení stejné knihovny různými procesy prioritním cílem, protože se nepředpokládalo, že na tehdejším dostupném hardware bude možné spouštět desítky až stovky programů současně (tím také byly sníženy paměťové nároky jdoucí na vrub možnosti sdílení knihovny mezi více procesy) a zároveň procesor <a href="/wiki/Intel_8086" title="Intel 8086">Intel 8086</a> neposkytoval podporu <a href="/wiki/Virtu%C3%A1ln%C3%AD_pam%C4%9B%C5%A5" title="Virtuální paměť">virtuální paměti</a>. Knihovny DLL se proto soustředily na maximalizaci úspory paměťového prostoru a na vytvoření společného paměťového prostoru knihoven a programu. </p> <div class="mw-heading mw-heading3"><h3 id="Správa_sdílených_knihoven"><span id="Spr.C3.A1va_sd.C3.ADlen.C3.BDch_knihoven"></span>Správa sdílených knihoven</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&veaction=edit&section=10" title="Editace sekce: Správa sdílených knihoven" class="mw-editsection-visualeditor"><span>editovat</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&action=edit&section=10" title="Editovat zdrojový kód sekce Správa sdílených knihoven"><span>editovat zdroj</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Pokud mají být dynamické knihovny sdíleny více spuštěnými programy (tj. více <a href="/wiki/Proces_(informatika)" title="Proces (informatika)">procesy</a>), musí všechny tyto programy využít naprosto stejnou dynamickou knihovnu. Toho lze dosáhnout jedině tak, že všechny programy jako knihovnu použijí stejný soubor. Knihovny jsou proto soustředěny na centrální místo. V <a href="/wiki/UN*X" title="UN*X">unixových systémech</a> jsou to zejména základní <a href="/wiki/Adres%C3%A1%C5%99_(informatika)" title="Adresář (informatika)">adresáře</a> <code>/lib</code> a <code>/usr/lib</code>, ale mohou to být i další adresáře, například <code>/lib64</code>, <code>/usr/local/lib</code> atd. (seznam doplňujících adresářů je v souboru <code>/etc/ld.so.conf</code>, nově též v souborech obsažených v adresáři <code>/etc/ld.so.conf.d/</code>). </p><p>Protože i knihovny obsahují chyby, jsou vydávány novější <a href="/wiki/Verze" title="Verze">verze</a> a navzájem jsou odlišeny čísly. Číslo je typicky uvedeno uvnitř knihovny. Někdy jsou změny v novější verzi knihovny větší a v systému je vhodné mít kromě starší verze knihovny pro dříve přeložené programy (resp. pro programy <a href="/wiki/Linker" title="Linker">linkované</a> proti starší knihovně) zároveň i novější verzi knihovny pro novější verze programů. Aby mohly být různé verze knihoven umístěny ve stejném <a href="/wiki/Adres%C3%A1%C5%99_(informatika)" title="Adresář (informatika)">adresáři</a>, jsou v jejich názvu uvedena čísla verze (nemusí být nutně stejné, jako jsou dříve zmíněná čísla uvedená uvnitř knihoven). V názvech se typicky používají tři čísla: major, minor a patchlevel (hlavní číslo generace pro velké změny v rozhraní knihovny, vedlejší číslo pro odlišení kompatibility a poslední číslo označuje opravu chyb se zachováním kompatibility). </p><p>Pro zajištění pořádku v různých verzích knihoven a usnadnění nalezení nejvýhodnější verze je unixových systémech nástroj <a href="/w/index.php?title=Ldconfig&action=edit&redlink=1" class="new" title="Ldconfig (stránka neexistuje)">ldconfig</a>, který projde všechny adresáře s knihovnami a vytvoří databázi všech dynamických knihoven do souboru <code>/etc/ld.so.cache</code>, který je dále využíván <a href="/wiki/Zavad%C4%9B%C4%8D_(program)" title="Zavaděč (program)">zavaděčem</a> (resp. jeho částí – <a href="/w/index.php?title=Dynamic_linker&action=edit&redlink=1" class="new" title="Dynamic linker (stránka neexistuje)">dynamickým linkerem</a>). Zároveň jsou vytvářeny <a href="/wiki/Symbolick%C3%BD_odkaz" title="Symbolický odkaz">symbolické odkazy</a>, ve kterých název a zkrácené číslo verze, přičemž odkaz míří na nejnovější verzi knihovny (program si při spuštění vyžádá konkrétní verzi knihovny pomocí major a minor čísla a na patchlevel se typicky nehledí, protože knihovny lišící se pouze tímto číslem jsou navzájem kompatibilní). </p><p>Nejdůležitějším rysem správy dynamických sdílených knihoven je jejich údržba, kdy tvůrce systému musí vydávat opravené verze knihoven a zajišťovat, že nedojde ke ztrátě kompatibility (nebo je nekompatibilní knihovna označena jiným číslem verze). Tuto správu běžně dělají tvůrci <a href="/wiki/Linuxov%C3%A1_distribuce" title="Linuxová distribuce">linuxových distribucí</a>. Naproti tomu firma <a href="/wiki/Microsoft" title="Microsoft">Microsoft</a> pro své systémy <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a> nikdy takovou údržbu nedělala. Dynamické knihovny (soubory <a href="/wiki/DLL" title="DLL">DLL</a>) nemají v názvu číslo verze, a proto novější verze knihovny přepíše starší verzi. Pokud je novější verze nekompatibilní (číslo verze je uvnitř DLL souboru), mají starší programy jiných tvůrců problém (Microsoft si <a href="/wiki/Kompatibilita" class="mw-disambig" title="Kompatibilita">kompatibilitu</a> v rámci svých produktů může snadno zajistit). Tomuto neorganizovanému a nepředvídatelnému stavu se říká <a href="/w/index.php?title=DLL_hell&action=edit&redlink=1" class="new" title="DLL hell (stránka neexistuje)">DLL hell</a> (DLL peklo). Proto je v novějších systémech Windows doporučeno, aby každý program měl vlastní soubory s knihovnami, což však brání sdílení kódu knihoven v paměti pro více procesů. Tímto opatřením se samozřejmě snižují náklady na údržbu systému na straně tvůrce systému, ale ztěžuje se použití knihoven programátorům aplikací a zvyšují se nároky na velikost nutné <a href="/wiki/Opera%C4%8Dn%C3%AD_pam%C4%9B%C5%A5" title="Operační paměť">operační paměti</a> <a href="/wiki/RAM" title="RAM">RAM</a> (tj. přenáší se náklady na uživatele počítačů, protože knihovny se v paměti nesdílí, pro které je potřeba mnohem více operační paměti). </p> <div class="mw-heading mw-heading2"><h2 id="Srovnání_statické_a_dynamické_knihovny"><span id="Srovn.C3.A1n.C3.AD_statick.C3.A9_a_dynamick.C3.A9_knihovny"></span>Srovnání statické a dynamické knihovny</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&veaction=edit&section=11" title="Editace sekce: Srovnání statické a dynamické knihovny" class="mw-editsection-visualeditor"><span>editovat</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&action=edit&section=11" title="Editovat zdrojový kód sekce Srovnání statické a dynamické knihovny"><span>editovat zdroj</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li>Statická knihovna se spojuje se spustitelným souborem v době linkování programu, zatímco dynamická knihovna se spojuje se spustitelným souborem v době spuštění programu nebo až za jeho běhu.</li> <li>Pokud se spustí několik programů, které využívají jednu statickou knihovnu, je tato knihovna v operační paměti opakovaně (v každé instanci programu). Kód dynamické knihovny naproti tomu může být v paměti sdílen všemi instancemi.</li> <li>Staticky slinkovaný program je lépe přenosný, stačí přenést jeden soubor. U dynamicky slinkovaného programu je nutno zajistit, aby na počítači byly nainstalovány správné verze požadovaných dynamických knihoven nebo při přenosu přidat správné verze jako další soubory. Toto pravidlo platí rekurzivně (dynamické knihovny mohou vyžadovat další dynamické knihovny).</li> <li>Pokud je chyba ve statické knihovně, je nutné po jejím opravení znovu sestavit všechny programy, které danou knihovnu používají. U dynamické knihovny stačí nahradit jediný soubor dynamické knihovny její novější (opravenou) verzí. Všechny programy používající tuto dynamickou pak automaticky pracují s opravenou knihovnou.</li> <li>Automatické použití novější verze knihovny lze využít i jindy než při opravě chyby, novější verze může obsahovat například optimalizace a v některých případech i novou funkčnost pro nové programy (za předpokladu, že knihovna zachová funkčnost starého rozhraní pro staré programy).</li> <li>Spuštění staticky slinkovaného programu typicky trvá o něco kratší dobu, protože při spouštění dynamicky linkovaného programu operační systém musí zajistit načtení dynamické knihovny do paměti zvlášť a provést relokaci, tedy nahradit odkazy na data v knihovně jejich výslednou adresou.</li> <li>Dynamicky slinkovaný program je výrazně menší. Pokud knihovnu používá více než jeden program, ušetříme tedy místo i na disku.</li></ul> <div class="mw-heading mw-heading2"><h2 id="Návrh_knihovny"><span id="N.C3.A1vrh_knihovny"></span>Návrh knihovny</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&veaction=edit&section=12" title="Editace sekce: Návrh knihovny" class="mw-editsection-visualeditor"><span>editovat</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&action=edit&section=12" title="Editovat zdrojový kód sekce Návrh knihovny"><span>editovat zdroj</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Součástí návrhu většího softwarového projektu je obvykle i oddělení části funkčnosti do jedné nebo několika samostatných knihoven. Při návrhu knihovny se berou v úvahu především některé vlastnosti známé (na nižší úrovni) z <a href="/wiki/Objektov%C4%9B_orientovan%C3%A9_programov%C3%A1n%C3%AD" title="Objektově orientované programování">objektově orientovaného programování</a>: </p> <ul><li><i>Zapouzdřenost</i> – komplexní funkčnost knihovny by měla být dostupná přes jednoduché a snadno použitelné rozhraní. Na hotovou knihovnu se pak dá dívat jako na <a href="/wiki/%C4%8Cern%C3%A1_sk%C5%99%C3%AD%C5%88ka_(kybernetika)" title="Černá skříňka (kybernetika)">černou skříňku</a>.</li> <li><i>Znovupoužitelnost</i> – dobře navržená knihovna může dobře posloužit při vývoji budoucích projektů, kdy bude potřeba stejná nebo podobná funkčnost.</li></ul> <div class="mw-heading mw-heading2"><h2 id="Dynamické_knihovny_v_platformě_Linux/Unix"><span id="Dynamick.C3.A9_knihovny_v_platform.C4.9B_Linux.2FUnix"></span>Dynamické knihovny v platformě Linux/Unix</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&veaction=edit&section=13" title="Editace sekce: Dynamické knihovny v platformě Linux/Unix" class="mw-editsection-visualeditor"><span>editovat</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&action=edit&section=13" title="Editovat zdrojový kód sekce Dynamické knihovny v platformě Linux/Unix"><span>editovat zdroj</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Dynamické knihovny jsou v platformě Linux a Unix označované jako sdílené objekty. Sdílený objekt (angl. <a href="/w/index.php?title=Shared_object&action=edit&redlink=1" class="new" title="Shared object (stránka neexistuje)">Shared object</a>), také označován jako je soubor, který je určen ke sdílení spustitelnými soubory (<a href="/wiki/Po%C4%8D%C3%ADta%C4%8Dov%C3%BD_program" title="Počítačový program">programy</a>) nebo jinými sdílenými objekty. Jedná se o unixovou/Linuxovou obdobu <a href="/wiki/DLL" title="DLL">DLL</a> knihoven z operačního systému <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a>. Z toto objektu jsou při startu programu nebo během jeho chodu načítány do paměti systému jednotlivé rutiny knihovny, které jsou využívány za běhu programu. Díky tomu nemusí <a href="/wiki/Linker" title="Linker">linker</a> při kompilaci programu tyto metody zakomponovávat přímo do programů a vytvářet tak ohromné monolitické programy. <br /> Dynamické knihovny mohou být použity také jako statické knihovny a je možné je do programu linkovat staticky při kompilaci programu. Toto ale není doporučováno, častěji se připojují až za běhu programu. </p><p>Většina moderních operačních systémů může mít soubory sdílené knihovny ve stejném formátu jako spustitelné soubory. To nabízí dvě hlavní výhody. za prvé, místo dvou loaderů pro každý typ zvlášť stačí jen jeden loader pro oba. Za druhé, umožňuje spustitelné také použít jako knihovny, pokud mají <a href="/wiki/Tabulka_symbol%C5%AF" title="Tabulka symbolů">tabulku symbolů</a>. Typické kombinace spustitelný soubor a knihovny jsou formáty <a href="/wiki/Executable_and_Linkable_Format" title="Executable and Linkable Format">ELF</a> a <a href="/w/index.php?title=Mach-O&action=edit&redlink=1" class="new" title="Mach-O (stránka neexistuje)">Mach-O</a> (oba Unix) a <a href="/wiki/Portable_Executable" title="Portable Executable">PE</a> (Windows). </p> <div class="mw-heading mw-heading2"><h2 id="Vytvoření_SO_pomocí_GCC"><span id="Vytvo.C5.99en.C3.AD_SO_pomoc.C3.AD_GCC"></span>Vytvoření SO pomocí GCC</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&veaction=edit&section=14" title="Editace sekce: Vytvoření SO pomocí GCC" class="mw-editsection-visualeditor"><span>editovat</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&action=edit&section=14" title="Editovat zdrojový kód sekce Vytvoření SO pomocí GCC"><span>editovat zdroj</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Postup vytvoření sdílené knihovny probíhá v několika krocích. Následující příklad objasňuje symbolicky celý postup. <a href="/wiki/Zdrojov%C3%BD_k%C3%B3d" title="Zdrojový kód">Zdrojový kód</a> knihovny je uložen v souborech <code>prvni.c</code> a <code>druhy.c</code>, ze kterých má být vytvořena knihovna (typu <a href="/wiki/ELF" class="mw-redirect" title="ELF">ELF</a>). Postup vytvoření sdílené knihovny bude pak následující: </p> <div class="mw-highlight mw-highlight-lang-shell-session mw-content-ltr" dir="ltr"><pre><span></span><span class="gp">$ </span>gcc<span class="w"> </span>-fPIC<span class="w"> </span>-g<span class="w"> </span>-c<span class="w"> </span>-Wall<span class="w"> </span>prvni.c <span class="gp">$ </span>gcc<span class="w"> </span>-fPIC<span class="w"> </span>-g<span class="w"> </span>-c<span class="w"> </span>-Wall<span class="w"> </span>druhy.c <span class="gp">$ </span>gcc<span class="w"> </span>-shared<span class="w"> </span>-Wl,-soname,libMyMethods.so.1<span class="w"> </span>-o<span class="w"> </span>libMyMethods.so.1.0.1<span class="w"> </span>prvni.o<span class="w"> </span>druhy.o </pre></div> <p>První dva příkazy přeloží díky přepínači <code>-c</code> soubory <code>prvni.c</code> a <code>druhy.c</code> do podoby <a href="/wiki/Objektov%C3%BD_k%C3%B3d" title="Objektový kód">objektového kódu</a> (tj. do souborů <code>prvni.o</code> a <code>druhy.o</code>, které jsou určitou formou polotovaru, protože se nepoužije <a href="/wiki/Linker" title="Linker">linker</a>). Přepínač <code>-fPIC</code> zapne vytvoření <a href="/wiki/Position-independent_code" title="Position-independent code">pozičně nezávislého kódu</a>. Přepínač <code>-g</code> zapne generování <a href="/wiki/Lad%C4%9Bn%C3%AD_(programov%C3%A1n%C3%AD)" title="Ladění (programování)">ladících</a> informací, které jsou umístěny do výsledného kódu. Přepínač <code>-Wall</code> zapne výpis všech varování při překladu. </p><p>Poslední příkaz vytvoří vlastní knihovnu (přepínačem <code>-shared</code>) jako soubor <code>libMyMethods.so.1.0.1</code>, který je dále využitelný jako dynamická knihovna v jiných programech. Verze knihovny (tj. interní označení), které indikuje verzi <a href="/wiki/API" title="API">API</a> knihovny, je nastaveno na <code>libMyMethods.so.1</code>. Při překladu jiného programu může být knihovna nabídnuta linkeru přepínačem <code>-lMyMethods</code>. Pro programování v <a href="/wiki/C_(programovac%C3%AD_jazyk)" title="C (programovací jazyk)">jazyce C</a> bude ke knihovně nutné dodat <a href="/wiki/Hlavi%C4%8Dkov%C3%BD_soubor" title="Hlavičkový soubor">hlavičkový soubor</a> s názvem <code>libMyMethods.h</code>, který bude definovat prototypy v knihovně obsažených funkcí. </p> <div class="mw-heading mw-heading2"><h2 id="Příklady_různých_knihoven"><span id="P.C5.99.C3.ADklady_r.C5.AFzn.C3.BDch_knihoven"></span>Příklady různých knihoven</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&veaction=edit&section=15" title="Editace sekce: Příklady různých knihoven" class="mw-editsection-visualeditor"><span>editovat</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&action=edit&section=15" title="Editovat zdrojový kód sekce Příklady různých knihoven"><span>editovat zdroj</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Standardn%C3%AD_knihovna_jazyka_C" title="Standardní knihovna jazyka C">standardní knihovna jazyka C</a></li> <li>standardní knihovna šablon (<i><a href="/wiki/Standard_Template_Library" title="Standard Template Library">Standard Template Library</a></i>) v jazyce <a href="/wiki/C%2B%2B" title="C++">C++</a></li> <li>grafické knihovny jako <a href="/wiki/DirectX" title="DirectX">DirectX</a>, <a href="/wiki/OpenGL" title="OpenGL">OpenGL</a>, <a href="/wiki/Simple_DirectMedia_Layer" title="Simple DirectMedia Layer">SDL</a>, <a href="/wiki/Swing_(Java)" title="Swing (Java)">Swing</a> apod.</li> <li><a href="/wiki/Matematika" title="Matematika">matematická</a> knihovna <a href="/w/index.php?title=LINPACK&action=edit&redlink=1" class="new" title="LINPACK (stránka neexistuje)">LINPACK</a> pro řešení <a href="/wiki/Soustava_rovnic" title="Soustava rovnic">soustav</a> <a href="/wiki/Line%C3%A1rn%C3%AD_rovnice" title="Lineární rovnice">lineárních rovnic</a></li></ul> <div class="mw-heading mw-heading2"><h2 id="Reference">Reference</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&veaction=edit&section=16" title="Editace sekce: Reference" class="mw-editsection-visualeditor"><span>editovat</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&action=edit&section=16" title="Editovat zdrojový kód sekce Reference"><span>editovat zdroj</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-references-wrap"><ol class="references"> <li id="cite_note-Wexelblat_1981_369-1"><span class="mw-cite-backlink"><a href="#cite_ref-Wexelblat_1981_369_1-0">↑</a></span> <span class="reference-text"><cite class="book" style="font-style:normal;">WEXELBLAT, Richard. <i>History of Programming Languages</i>. [s.l.]: Academic Press (A subsidiary of <a href="/w/index.php?title=Harcourt_Brace&action=edit&redlink=1" class="new" title="Harcourt Brace (stránka neexistuje)">Harcourt Brace</a>), 1981. (ACM Monograph Series). <a rel="nofollow" class="external text" href="https://archive.org/details/historyofprogram0000hist/page/369">Dostupné online</a>. <span style="white-space:nowrap"><a href="/wiki/International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <a href="/wiki/Speci%C3%A1ln%C3%AD:Zdroje_knih/0-12-745040-8" title="Speciální:Zdroje knih/0-12-745040-8"><span class="ISBN">0-12-745040-8</span></a></span>. S. <a rel="nofollow" class="external text" href="https://archive.org/details/historyofprogram0000hist/page/369">369</a>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rfr_id=info:sid/cs.wikipedia.org:templatecitacemonografie&rft.btitle=History+of+Programming+Languages&rft_id=https%3A%2F%2Farchive.org%2Fdetails%2Fhistoryofprogram0000hist%2Fpage%2F369&rft.isbn=0-12-745040-8&rft.aulast=Wexelblat&rft.aufirst=Richard&rft.pub=Academic+Press+%28A+subsidiary+of+%5B%5BHarcourt+Brace%5D%5D%29&rft.date=1981&rft.series=ACM+Monograph+Series&rft.pages=%5Bhttps%3A%2F%2Farchive.org%2Fdetails%2Fhistoryofprogram0000hist%2Fpage%2F369+369%5D"><span style="display:none"> </span></span><span title="Chyba v použití šablony!" class="error" style="font-weight:bold;display:none;">Je zde použita šablona <code>{{<a href="/wiki/%C5%A0ablona:Cite_book" title="Šablona:Cite book">Cite book</a>}}</code> označená jako k „pouze dočasnému použití“.</span></span> </li> <li id="cite_note-Wexelblat_1981_274-2"><span class="mw-cite-backlink"><a href="#cite_ref-Wexelblat_1981_274_2-0">↑</a></span> <span class="reference-text">Wexelblat, <i>op. cit.</i>, p. 274</span> </li> <li id="cite_note-Wexelblat_1981_258-3"><span class="mw-cite-backlink"><a href="#cite_ref-Wexelblat_1981_258_3-0">↑</a></span> <span class="reference-text">Wexelblat, <i>op. cit.</i>, p. 258</span> </li> <li id="cite_note-Wilson_Clark_1988_126-4"><span class="mw-cite-backlink"><a href="#cite_ref-Wilson_Clark_1988_126_4-0">↑</a></span> <span class="reference-text"><cite class="book" style="font-style:normal;">WILSON, Leslie B.; CLARK, Robert G. <i>Comparative Programming Languages</i>. [s.l.]: Addison-Wesley, 1988. <span style="white-space:nowrap"><a href="/wiki/International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <a href="/wiki/Speci%C3%A1ln%C3%AD:Zdroje_knih/0-201-18483-4" title="Speciální:Zdroje knih/0-201-18483-4"><span class="ISBN">0-201-18483-4</span></a></span>. S. 126.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rfr_id=info:sid/cs.wikipedia.org:templatecitacemonografie&rft.btitle=Comparative+Programming+Languages&rft.isbn=0-201-18483-4&rft.aulast=Wilson&rft.aufirst=Leslie+B.&rft.au=Clark%2C+Robert+G.&rft.pub=Addison-Wesley&rft.date=1988&rft.pages=126"><span style="display:none"> </span></span><span title="Chyba v použití šablony!" class="error" style="font-weight:bold;display:none;">Je zde použita šablona <code>{{<a href="/wiki/%C5%A0ablona:Cite_book" title="Šablona:Cite book">Cite book</a>}}</code> označená jako k „pouze dočasnému použití“.</span></span> </li> <li id="cite_note-Wilson_Clark_1988_52-5"><span class="mw-cite-backlink"><a href="#cite_ref-Wilson_Clark_1988_52_5-0">↑</a></span> <span class="reference-text">Wilson and Clark, <i>op. cit.</i>, p. 52</span> </li> <li id="cite_note-Wexelblat_1981_716-6"><span class="mw-cite-backlink"><a href="#cite_ref-Wexelblat_1981_716_6-0">↑</a></span> <span class="reference-text">Wexelblat, <i>op. cit.</i>, p. 716</span> </li> </ol></div> <div class="mw-heading mw-heading2"><h2 id="Externí_odkazy"><span id="Extern.C3.AD_odkazy"></span>Externí odkazy</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&veaction=edit&section=17" title="Editace sekce: Externí odkazy" class="mw-editsection-visualeditor"><span>editovat</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&action=edit&section=17" title="Editovat zdrojový kód sekce Externí odkazy"><span>editovat zdroj</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><span class="wd"><span class="sisterproject sisterproject-commons"><span class="sisterproject_image"><span typeof="mw:File"><a href="/wiki/Wikimedia_Commons" title="Wikimedia Commons"><img alt="Logo Wikimedia Commons" src="//upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/12px-Commons-logo.svg.png" decoding="async" width="12" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/18px-Commons-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/24px-Commons-logo.svg.png 2x" data-file-width="1024" data-file-height="1376" /></a></span></span> <span class="sisterproject_text">Obrázky, zvuky či videa k tématu <span class="sisterproject_text_target"><a href="https://commons.wikimedia.org/wiki/Category:Computer_libraries" class="extiw" title="c:Category:Computer libraries">knihovna</a></span> na <a href="/wiki/Wikimedia_Commons" title="Wikimedia Commons">Wikimedia Commons</a></span></span></span><i> </i></li></ul> <style data-mw-deduplicate="TemplateStyles:r23078045">.mw-parser-output .navbox2{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox2 .navbox2{margin-top:0}.mw-parser-output .navbox2+.navbox2{margin-top:-1px}.mw-parser-output .navbox2-inner,.mw-parser-output .navbox2-subgroup{width:100%}.mw-parser-output .navbox2-group,.mw-parser-output .navbox2-title,.mw-parser-output .navbox2-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output th.navbox2-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox2,.mw-parser-output .navbox2-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox2-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output tr+tr>.navbox2-abovebelow,.mw-parser-output tr+tr>.navbox2-group,.mw-parser-output tr+tr>.navbox2-image,.mw-parser-output tr+tr>.navbox2-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox2 th,.mw-parser-output .navbox2-title{background-color:#e0e0e0}.mw-parser-output .navbox2-abovebelow,.mw-parser-output th.navbox2-group,.mw-parser-output .navbox2-subgroup .navbox2-title{background-color:#e7e7e7}.mw-parser-output .navbox2-subgroup .navbox2-title{font-size:88%}.mw-parser-output .navbox2-subgroup .navbox2-group,.mw-parser-output .navbox2-subgroup .navbox2-abovebelow{background-color:#f0f0f0}.mw-parser-output .navbox2-even{background-color:#f7f7f7}.mw-parser-output .navbox2-odd{background-color:transparent}.mw-parser-output .navbox2 .hlist td dl,.mw-parser-output .navbox2 .hlist td ol,.mw-parser-output .navbox2 .hlist td ul,.mw-parser-output .navbox2 td.hlist dl,.mw-parser-output .navbox2 td.hlist ol,.mw-parser-output .navbox2 td.hlist ul{padding:0.125em 0}</style><div role="navigation" class="navbox2" aria-labelledby="Autoritní_data_frameless_&#124;text-top_&#124;10px_&#124;alt=Editovat_na_Wikidatech_&#124;link=https&#58;//www.wikidata.org/wiki/Q188860#identifiers&#124;Editovat_na_Wikidatech" style="padding:2px"><table class="nowraplinks hlist navbox2-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th id="Autoritní_data_frameless_&#124;text-top_&#124;10px_&#124;alt=Editovat_na_Wikidatech_&#124;link=https&#58;//www.wikidata.org/wiki/Q188860#identifiers&#124;Editovat_na_Wikidatech" scope="row" class="navbox2-group" style="width:1%"><a href="/wiki/Autoritn%C3%AD_kontrola" title="Autoritní kontrola">Autoritní data</a> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q188860#identifiers" title="Editovat na Wikidatech"><img alt="Editovat na Wikidatech" src="//upload.wikimedia.org/wikipedia/commons/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span></th><td class="navbox2-list navbox2-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><span class="nowrap"><a href="/wiki/N%C3%A1rodn%C3%AD_knihovna_%C4%8Cesk%C3%A9_republiky" title="Národní knihovna České republiky">NKC</a>: <span class="uid"><a rel="nofollow" class="external text" href="https://aleph.nkp.cz/F/?func=find-c&local_base=aut&ccl_term=ica=ph170667">ph170667</a></span></span></li> <li><span class="nowrap"><a href="/wiki/Gemeinsame_Normdatei" title="Gemeinsame Normdatei">GND</a>: <span class="uid"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/4121521-7">4121521-7</a></span></span></li> <li><span class="nowrap"><a href="/wiki/Library_of_Congress_Control_Number" title="Library of Congress Control Number">LCCN</a>: <span class="uid"><a rel="nofollow" class="external text" href="https://id.loc.gov/authorities/subjects/sh2008001447">sh2008001447</a></span></span></li> <li><span class="nowrap"><a href="/wiki/N%C3%A1rodn%C3%AD_knihovna_Izraele" title="Národní knihovna Izraele">NLI</a>: <span class="uid"><a rel="nofollow" class="external text" href="http://olduli.nli.org.il/F/?func=find-b&local_base=NLX10&find_code=UID&request=987007542436505171">987007542436505171</a></span></span></li></ul> </div></td></tr></tbody></table></div> <!-- NewPP limit report Parsed by mw‐api‐int.codfw.canary‐74d8c66d76‐v7q2s Cached time: 20241027133510 Cache expiry: 2592000 Reduced expiry: false Complications: [show‐toc] CPU time usage: 0.230 seconds Real time usage: 0.390 seconds Preprocessor visited node count: 1899/1000000 Post‐expand include size: 20258/2097152 bytes Template argument size: 4178/2097152 bytes Highest expansion depth: 19/100 Expensive parser function count: 5/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 7709/5000000 bytes Lua time usage: 0.090/10.000 seconds Lua memory usage: 2308195/52428800 bytes Number of Wikibase entities loaded: 1/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 343.841 1 -total 32.68% 112.371 1 Šablona:Commonscat 24.09% 82.841 1 Šablona:Autoritní_data 16.88% 58.057 6 Šablona:Vjazyce2 14.32% 49.232 2 Šablona:Cite_book 13.87% 47.704 12 Šablona:První_neprázdný 12.93% 44.443 6 Šablona:Vjazyce 7.77% 26.724 5 Šablona:Podrobně 6.58% 22.613 5 Šablona:Seznam 4.55% 15.648 2 Šablona:Cizojazyčná_verze_šablony --> <!-- Saved in parser cache with key cswiki:pcache:idhash:70505-0!canonical and timestamp 20241027133510 and revision id 23781717. Rendering was triggered because: api-parse --> </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="">Citováno z „<a dir="ltr" href="https://cs.wikipedia.org/w/index.php?title=Knihovna_(programování)&oldid=23781717">https://cs.wikipedia.org/w/index.php?title=Knihovna_(programování)&oldid=23781717</a>“</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/N%C3%A1pov%C4%9Bda:Kategorie" title="Nápověda:Kategorie">Kategorie</a>: <ul><li><a href="/wiki/Kategorie:Programov%C3%A9_knihovny" title="Kategorie:Programové knihovny">Programové knihovny</a></li><li><a href="/wiki/Kategorie:Programov%C3%A1n%C3%AD" title="Kategorie:Programování">Programování</a></li><li><a href="/wiki/Kategorie:Syst%C3%A9mov%C3%BD_software" title="Kategorie:Systémový software">Systémový software</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Skryté kategorie: <ul><li><a href="/wiki/Kategorie:%C3%9Adr%C5%BEba:%C4%8Cl%C3%A1nky_s_do%C4%8Dasn%C4%9B_pou%C5%BEitou_%C5%A1ablonou" title="Kategorie:Údržba:Články s dočasně použitou šablonou">Údržba:Články s dočasně použitou šablonou</a></li><li><a href="/wiki/Kategorie:Monitoring:%C4%8Cl%C3%A1nky_s_identifik%C3%A1torem_NKC" title="Kategorie:Monitoring:Články s identifikátorem NKC">Monitoring:Články s identifikátorem NKC</a></li><li><a href="/wiki/Kategorie:Monitoring:%C4%8Cl%C3%A1nky_s_identifik%C3%A1torem_GND" title="Kategorie:Monitoring:Články s identifikátorem GND">Monitoring:Články s identifikátorem GND</a></li><li><a href="/wiki/Kategorie:Monitoring:%C4%8Cl%C3%A1nky_s_identifik%C3%A1torem_LCCN" title="Kategorie:Monitoring:Články s identifikátorem LCCN">Monitoring:Články s identifikátorem LCCN</a></li><li><a href="/wiki/Kategorie:Monitoring:%C4%8Cl%C3%A1nky_s_identifik%C3%A1torem_NLI" title="Kategorie:Monitoring:Články s identifikátorem NLI">Monitoring:Články s identifikátorem NLI</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> Stránka byla naposledy editována 31. 3. 2024 v 09:51.</li> <li id="footer-info-copyright">Text je dostupný pod <a rel="nofollow" class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.cs">licencí Creative Commons Uveďte původ – Zachovejte licenci</a>, případně za dalších podmínek. Podrobnosti naleznete na stránce <a class="external text" href="https://foundation.wikimedia.org/wiki/Policy:Terms_of_Use/cs">Podmínky užití</a>.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Ochrana osobních údajů</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedie">O Wikipedii</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedie:Vylou%C4%8Den%C3%AD_odpov%C4%9Bdnosti">Vyloučení odpovědnosti</a></li> <li id="footer-places-contact"><a href="//cs.wikipedia.org/wiki/Wikipedie:Kontakt">Kontaktujte Wikipedii</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Kodex chování</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Vývojáři</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/cs.wikipedia.org">Statistiky</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Prohlášení o cookies</a></li> <li id="footer-places-mobileview"><a href="//cs.m.wikipedia.org/w/index.php?title=Knihovna_(programov%C3%A1n%C3%AD)&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobilní verze</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> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-wjlpq","wgBackendResponseTime":181,"wgPageParseReport":{"limitreport":{"cputime":"0.230","walltime":"0.390","ppvisitednodes":{"value":1899,"limit":1000000},"postexpandincludesize":{"value":20258,"limit":2097152},"templateargumentsize":{"value":4178,"limit":2097152},"expansiondepth":{"value":19,"limit":100},"expensivefunctioncount":{"value":5,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":7709,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 343.841 1 -total"," 32.68% 112.371 1 Šablona:Commonscat"," 24.09% 82.841 1 Šablona:Autoritní_data"," 16.88% 58.057 6 Šablona:Vjazyce2"," 14.32% 49.232 2 Šablona:Cite_book"," 13.87% 47.704 12 Šablona:První_neprázdný"," 12.93% 44.443 6 Šablona:Vjazyce"," 7.77% 26.724 5 Šablona:Podrobně"," 6.58% 22.613 5 Šablona:Seznam"," 4.55% 15.648 2 Šablona:Cizojazyčná_verze_šablony"]},"scribunto":{"limitreport-timeusage":{"value":"0.090","limit":"10.000"},"limitreport-memusage":{"value":2308195,"limit":52428800}},"cachereport":{"origin":"mw-api-int.codfw.canary-74d8c66d76-v7q2s","timestamp":"20241027133510","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Knihovna (programov\u00e1n\u00ed)","url":"https:\/\/cs.wikipedia.org\/wiki\/Knihovna_(programov%C3%A1n%C3%AD)","sameAs":"http:\/\/www.wikidata.org\/entity\/Q188860","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q188860","author":{"@type":"Organization","name":"P\u0159isp\u011bvatel\u00e9 projekt\u016f Wikimedia"},"publisher":{"@type":"Organization","name":"nadace Wikimedia","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2006-02-28T09:40:33Z","dateModified":"2024-03-31T08:51:17Z","headline":"kolekce zdroj\u016f pou\u017e\u00edvan\u00e1 po\u010d\u00edta\u010dov\u00fdmi programy; op\u011btovn\u011b vyu\u017eiteln\u00e1 softwarov\u00e1 komponenta"}</script> </body> </html>