Создание общей библиотеки из существующих объектных файлов - PullRequest
8 голосов
/ 06 апреля 2010

У меня есть проект в моей IDE. Мне нужно сделать общую библиотеку для использования в расширениях. Я не хочу делать копию этого проекта с настройками общей библиотеки. Есть ли способ построить общую библиотеку, используя объектные файлы (.o) из моего уже существующего проекта? Как я понимаю, я могу написать для этого make-файл.

Ответы [ 2 ]

13 голосов
/ 06 апреля 2010

Я предполагаю, что вы работаете в каком-то Unix и, вероятно, используете набор инструментов GNU. В этом случае, чтобы создать правильную разделяемую библиотеку, вам необходимо скомпилировать код с использованием флагов, не зависящих от позиции (-fpic или -fPIC), прежде чем вы сможете создать разделяемую библиотеку. Если ваши файлы .o уже не скомпилированы с этими флагами, скорее всего, у вас не будет рабочей общей библиотеки.

Если они уже скомпилированы для позиционно-независимого кода, обычный g++ -shared ... должен добиться цели.

7 голосов
/ 06 апреля 2010

g++ -shared -fPIC -o myshared.so *.o

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...