Próbuję stworzyć projekt Hello World dla bibliotek dynamicznych Linuksa (pliki .so). Więc mam plik hello.c:
#include <stdio.h>
void hello()
{
printf("Hello world!\n");
}
Jak utworzyć plik .so, który eksportuje hello()
, używając gcc z wiersza poleceń?
c
linux
gcc
shared-libraries
sashoalm
źródło
źródło
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, dogcc
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 uruchomieniugcc -o abc.c abc.o
zostanie wygenerowany plik obiektowy. W takim razie możesz użyć tegoabc.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.