Відповіді:
Щоб створити спільну бібліотеку, потрібно спершу скомпілювати свій 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
команд. - Базиле Старинкевич
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: Просто для усунення сумнівів у коментарі.