Ответ 1
Чтобы создать общую библиотеку, вам необходимо сначала скомпилировать ваш код C с флагом -fPIC
(независимый по позиции кода).
gcc -c -fPIC hello.c -o hello.o
Это приведет к созданию объектного файла (.o), теперь вы его берете и создаете .so файл:
gcc hello.o -shared -o libhello.so
EDIT: Предложения по комментариям:
Вы можете использовать
gcc -shared -o libhello.so -fPIC hello.c
сделать это за один шаг. - Джонатан Леффлер
Я также предлагаю добавить -Wall
для получения всех предупреждений и -g
для получения отладочной информации к вашим командам gcc
. - Базиль Старинкевич