Biblioteka programistyczna to uniwersalny kod - tyle i aż tyle. Może mieć różne postacie, czy to zwykłego źródła dołączanego do projektu, biblioteki statycznej lub dynamicznej.
W pierwszym przypadku chodzi o rozdzielenie kodu na niezależny moduł, gdzie jest on kompilowany razem z projektem wynikowym (głównie używa się tego w szablonach, gdzie implementacja funkcji musi być tam, gdzie jej użycie).
W drugim biblioteka to oddzielnie skompilowany kod w postaci odpowiedniego pliku. Zaleta w porównaniu do poprzednika jest taka, że kompilacja tego modułu już nie zachodzi, skracając kompilację projektu wynikowego.
Ostatnim typem jest biblioteka dynamiczna, która dzieli zalety linkowania statycznego oraz umożliwia użycie tego samego kodu różnym procesom, tzn. zyskuje na tym wielkość pliku wykonywalnego. Taka biblioteka jest wczytywana do pamięci w trakcie uruchomienia programu (Load-Time Dynamic Linking) lub wtedy, kiedy tego potrzebujesz (Run-Time Dynamic Linking).
Z teorii to tyle. Zostało ci jedynie poszukać poradników na tworzenie i używanie bibliotek statycznych i dynamicznych w zależności od danego kompilatora i systemu.