Ответы:
Чтобы сгенерировать разделяемую библиотеку, сначала нужно скомпилировать код на языке 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: Просто для устранения ваших сомнений в комментарии.