Odpowiedzi:
Aby wygenerować bibliotekę współdzieloną, musisz najpierw skompilować swój kod C z -fPIC
flagą (kod niezależny od pozycji).
gcc -c -fPIC hello.c -o hello.o
Spowoduje to wygenerowanie pliku obiektowego (.o), teraz bierzesz go i tworzysz plik .so:
gcc hello.o -shared -o libhello.so
EDYCJA : Sugestie z komentarzy:
Możesz użyć
gcc -shared -o libhello.so -fPIC hello.c
zrobić to w jednym kroku. - Jonathan Leffler
Proponuję również dodać, -Wall
aby uzyskać wszystkie ostrzeżenia i -g
uzyskać informacje o debugowaniu, do gcc
poleceń. - Basile Starynkevitch
gcc -shared -o libhello.so -fPIC hello.c
zrobić to w jednym kroku.
-Wall
aby uzyskać wszystkie ostrzeżenia i -g
uzyskać informacje o debugowaniu, do gcc
poleceń.
.o
Plik @sashoalm jest w zasadzie plikiem obiektowym dla pliku źródłowego, przed połączeniem ich razem w ostateczny plik wykonywalny. Więc po uruchomieniu gcc -o abc.c abc.o
zostanie wygenerowany plik obiektowy. W takim razie możesz użyć tego abc.o
pliku do utworzenia .so
pliku. Do stworzenia tak wielu plików potrzebujesz tylko poprawnego kodu c zapisanego w .c
pliku. PS: Tylko za wyjaśnienie wątpliwości w komentarzu.