Zewnętrzna biblioteka najczęściej składa się z trzech głównych rzeczy:
-mogą być pliki DLL tej biblioteki, w tego rodzaju plikach jest faktyczna skompilowana, binarna zawartość kodu tego co jest w bibliotece, innymi słowy to już skompilowana wersja biblioteki... Pliki takie(kilka bądź zwykle jeden główny), muszą się znajdować w folderze z exekiem, który z nich korzysta, lub w jakimkolwiek folderze systemowym lub folderze, który jest podany w zmiennej środowiskowej Windows, ogólnie w miejscach w których szuka funkcja LoadLibrary(), najczęściej jednak do folderu z exekiem wrzuca się potrzebne DLLki...
-pliki bibliotek statycznych, są to pliki dzięki, którym można statycznie(wygodniej niż dynamicznie) połączyć biblioteki DLL z pisanym programem Exe'ckiem... Linkery różnego pochodzenia używają różnych formatów bibliotek, np. biblioteki dzięki którym można połączyć statycznie pliki DLL z programem pisanym w MS Visual C++ mają format *.lib, a pliki, których używa linker GNU(Dev C++) mają rozszerzenie *.a i zaczynają się na lib...
-pliki nagłówkowe *.h te pliki powinny być ci znane, w nich są deklaracje kodowe tego co powinno znajdować się w bibliotece statycznej, należy je dołączać dyrektywą #include, żeby kompilator wiedział co jest w bibliotece...
DEV C++
Dołączanie bibliotek statycznych odbywa się w opcjach projektu: http://www.winapi.rox.pl Lekcja o kontrolkach WinAPI, tam będzie wyjaśnione jak dołączyć bibliotekę statyczną kontrolek, zasada ta sama, z tym że inna nazwa będzie, wzór jest taki:
nazwa pliku biblioteki statycznej: libNazwa.a
komenda linkera w opcjach: -Nazwa
Aha żeby Dev C++ widział bibliotekę statyczną musisz umieścić ją w folderze "lib" programu Dev C++, lub w opcjach projektu dodać ścieżkę w której znajduje się biblioteka, tam gdzie definiuje się miejsca gdzie Dev C++ ma szukać bibliotek statycznych....
MOŻLIWE PROBLEMY:
-wszystko się skomplilowało, ale podczas uruchamiania programu wyskakuje komunikat tego typu "Nie można odnaleść biblioteki DLL blblbla", wiadomo co :> biblioteki DLL nie ma tam gdzie być powinna...
-Błąd podczas kompilacja i raczej po kompilacji w trakcie linkowania: "undefined referance blablabla" nie dodałeś lub źle dodałeś bibliotekę statyczną, w skutek czego w w pliku nagłówkowym są zdefiniowane pewne elementy, ale biblioteka statyczna w której znajdują się te elementy nie jest dodana i linker się buntuje że nie można odnaleźć tego elementu(referencji)...
-Masa błędów podczas kompilacji, brakuje jakiś plików nagłówkowych...
Dobrze jak do bilbioteki jest dołączana jakaś dokumentacja, bo bez tego ciężko....