Een dynamic-link library, ook wel bekend als DLL, is een bibliotheek met functies, die door meerdere applicaties gebruikt kunnen worden. Het is het tegenovergestelde van een statisch gekoppelde bibliotheek, waarbij de bibliotheek in elk programma dat de bibliotheek gebruikt moet worden ingebouwd.
De bedoeling van een DLL is dat de bibliotheek slechts eenmaal op de harde schijf hoeft te worden bewaard, waardoor schijfruimte bespaard wordt, en dat ze ook maar eenmaal in het geheugen hoeft te worden geladen, terwijl toch meerdere toepassingen er gebruik van kunnen maken.
Een DLL wordt geladen zodra de eerste applicatie hem nodig heeft en kan door de kernel uit het geheugen worden verwijderd zodra alle applicaties die de DLL in gebruik hadden deze hebben afgemeld. DLL's worden ook gebruikt in Microsoft Windows, waarin DLL's zitten die voor de kernel gebruikt worden.
Een nadeel van DLL's is dat er in het verleden dikwijls verschillende versies van DLL's in omloop waren, waardoor er conflicten ontstonden, de zogenaamde dll hell. Tegenwoordig wordt dit verholpen door strikte versienummers te gebruiken.
Linux maakt ook gebruik van dynamisch gelinkte bibliotheken maar noemt die 'shared objects' (extensie .so).