Ответы:
Чтобы сгенерировать разделяемую библиотеку, сначала нужно скомпилировать код на языке C с -fPIC
флагом (независимый от положения код).
gcc -c -fPIC hello.c -o hello.o
Это сгенерирует объектный файл (.o), теперь вы берете его и создаете .so файл:
gcc hello.o -shared -o libhello.so
РЕДАКТИРОВАТЬ : Предложения из комментариев:
Ты можешь использовать
gcc -shared -o libhello.so -fPIC hello.c
сделать это за один шаг. - Джонатан Леффлер
Я также предлагаю добавить, -Wall
чтобы получать все предупреждения и -g
получать отладочную информацию, к вашим gcc
командам. - Василий Старынкевич
gcc -shared -o libhello.so -fPIC hello.c
сделать это за один шаг.
-Wall
чтобы получать все предупреждения и -g
получать отладочную информацию, к вашим gcc
командам.
.o
Файл @sashoalm - это, по сути, объектный файл для исходного файла, прежде чем связать их вместе в конечный исполняемый файл. Поэтому при запуске gcc -o abc.c abc.o
объектный файл будет сгенерирован. Затем вы можете использовать этот abc.o
файл для создания .so
файла. Для создания такого количества файлов все, что вам нужно, это правильный код c, написанный в .c
файле. PS: Просто для устранения ваших сомнений в комментарии.