2., Skompilować program sterownika.
gcc -c driver.c -o driver.o
3. Połącz skompilowany program sterownika ze statyczną biblioteką. Zauważ, że-L. jest używane, aby powiedzieć, że biblioteka statyczna znajduje się w bieżącym folderze (zobacz szczegóły opcji-L i-l).
gcc -o driver driver.o -L. -l_mylib
4. Uruchom program sterownika
./driver fun() called from a static library
poniżej przedstawiono kilka ważnych punktów dotyczących bibliotek statycznych.
1. W przypadku biblioteki statycznej, rzeczywisty kod jest wydobywany z biblioteki przez łącznik i używany do budowania ostatecznego pliku wykonywalnego w momencie kompilacji / budowania aplikacji.,
2. Każdy proces otrzymuje własną kopię kodu i danych. Gdzie jak w przypadku bibliotek dynamicznych jest to tylko kod współdzielony, dane są specyficzne dla każdego procesu. Dla bibliotek statycznych footprinty pamięci są większe. Na przykład, gdyby wszystkie narzędzia systemu okien były statycznie połączone, kilkadziesiąt megabajtów pamięci RAM zostałoby zmarnowanych dla typowego użytkownika, a użytkownik zostałby spowolniony przez wiele stronicowania.
3. Ponieważ kod biblioteki jest podłączony w czasie kompilacji, finalny plik wykonywalny nie ma zależności od biblioteki w czasie wykonywania, tzn., Brak dodatkowych kosztów ładowania, oznacza to, że nie trzeba nosić ze sobą kopii biblioteki, która jest używana i masz wszystko pod kontrolą i nie ma zależności.
4. W bibliotekach statycznych, gdy wszystko zostanie dołączone do Twojej aplikacji, nie musisz się martwić, że klient będzie miał odpowiednią bibliotekę (i wersję) dostępną w swoim systemie.
5. Wadą bibliotek statycznych jest to, że dla każdej zmiany(up-gradacji) w bibliotekach statycznych, za każdym razem trzeba przekompilować główny program.
6., Jedną z głównych zalet bibliotek statycznych jest „szybkość”. W bibliotekach statycznych nie będzie dynamicznego zapytania symboli. Wiele programów linii produkcyjnych korzysta ze statycznych bibliotek nawet dzisiaj.
dynamiczne linkowanie i biblioteki dynamiczne linkowanie nie wymaga kopiowania kodu, odbywa się to poprzez umieszczenie nazwy biblioteki w pliku binarnym. Rzeczywiste powiązanie ma miejsce, gdy program jest uruchomiony, gdy zarówno plik binarny, jak i biblioteka znajdują się w pamięci. Przykładami bibliotek dynamicznych (bibliotek, które są połączone w czasie wykonywania) są,. so w Linuksie i .dll w systemie Windows.,
wkrótce będziemy omawiać więcej punktów na temat bibliotek dynamicznych i kroków ich tworzenia.
Ten artykuł został opracowany przez Abhijit Saha i przejrzany przez zespół GeeksforGeeks. Proszę pisać komentarze, jeśli znajdziesz coś błędnego, lub chcesz podzielić się więcej informacji na temat omówiony powyżej.
Uwaga czytelniku! Nie przestawaj się teraz uczyć. Zdobądź wszystkie ważne koncepcje teorii CS do wywiadów SDE z kursem teorii CS w przyjaznej dla studentów cenie i stań się gotowy na branżę.
Tagi artykułów:
Tagi ćwiczeń: