Chcę dodać własną bibliotekę do użycia w kompilacji c, ale tak naprawdę nie wiem, gdzie Ubuntu ją przechowuje.
10.10
command-line
compiling
c
David25
źródło
źródło
Odpowiedzi:
Opierając się na twoich komentarzach do twojego pytania, myślę, że tak naprawdę pytasz: „Jak zainstalować niestandardową bibliotekę, którą napisałem i gdzie ją umieścić?”
Ogólnie rzecz biorąc, rzeczy zbudowane lokalnie dla innych użytkowników komputera są umieszczane w drzewie / usr / local. Plik nagłówkowy powinien przejść do katalogu / usr / local / include. Skompilowana biblioteka powinna przejść do katalogu / usr / local / lib. Plik .c nie jest częścią biblioteki, jest częścią źródła i nie jest czymś, co zwykle nie jest instalowane na użytek użytkownika końcowego. Będziesz potrzebował dostępu do konta root, aby umieścić pliki w jednej z tych lokalizacji.
Aby zbudować bibliotekę, musisz najpierw zbudować, czy chcesz mieć bibliotekę statyczną czy dynamiczną (współdzieloną). Więcej informacji na temat tworzenia biblioteki współdzielonej można znaleźć w sekcji 3.4, Tworzenie biblioteki współdzielonej pod adresem http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/shared-libraries.html . (Mają również rekomendacje dotyczące tego, gdzie umieścić rzeczy - większość programistów będzie miała opinię lub trzy :-))
źródło
W zależności od biblioteki ubuntu przechowuje swoje biblioteki głównie w trzech lokalizacjach
Poniżej znajduje się Standard Hierarchii Systemów Plików
/ lib
/ usr / lib
/ usr / local / lib zawiera biblioteki lokalne, tj. jedną specyficzną dla tego systemu, ale nie mogę znaleźć odniesień do / usr / local / lib w FHS, zawiera tylko wyjaśnienie dla / usr / local.
źródło
Ubuntu przestrzega standardu Hierarchii Systemów Plików ( http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard ), zwykłe biblioteki aplikacji powinny być przechowywane w katalogu / usr / lib.
Pamiętaj, że tworzenie bibliotek / zarządzanie nimi nie jest trywialnym tematem, powinieneś przeczytać bardziej szczegółową dokumentację, oto fajny samouczek: http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html
źródło
Powinieneś powiedzieć kompilatorowi, gdzie może znaleźć twoją bibliotekę. Zakładając, że ścieżka do Twojej biblioteki to „/path/to/lib/libfoo.a”, możesz skompilować i połączyć swój program „hello.c” w następujący sposób:
Nie jest to specyficzne dla Ubuntu, właściwie wszystkie kompilatory C, które znam, obsługują te flagi.
źródło
W Ubuntu znajdują się w
/usr/include
.źródło
/usr/include
. Rzeczywiste pliki binarne dla biblioteki nie są tam przechowywane. Nagłówki mogą być uważane za część biblioteki, ale muszą być instalowane osobno i służą do kompilacji programów korzystających z biblioteki. Po skompilowaniu programu korzystającego z biblioteki nie potrzebuje już plików nagłówkowych ani z nich nie korzysta.