Скомпилируйте * .a в * .so - PullRequest
       2

Скомпилируйте * .a в * .so

0 голосов
/ 21 февраля 2020

Возможно, глупый заголовок, но я не был достаточно изобретателен, чтобы найти лучший. Моя проблема: у меня есть библиотека Dynami c, которая содержит мою базовую библиотеку и библиотеку парней FoxToolkit. Итак, файл * .so содержит, как sampl, mycorelib.a и foxtoolkit.a. Теперь я удалил все зависимости для foxtoolkit.a из mycorelib.a и так foxtoolkit устарел. Поэтому мне просто нужен mycorelib.a в качестве динамической c библиотеки mycorelib.so

Что нужно, может быть, командная строка для g cc, чтобы сделать .a в .so?

1 Ответ

0 голосов
/ 21 февраля 2020

Существует несколько способов достижения этого.

Во-первых, поскольку .a является архивом, вы можете распаковать его и создать общую библиотеку из .o файлов

ar -x mycorelib.a
g++ -shared *.o -o mycorelib.so

Второй , это просто oneliner, который делает то же самое, но требует немного больше усилий, чтобы понять

gcc -shared -o mycorelib.so -Wl,--whole-archive mycorelib.a
...