Могу ли я создать общую библиотеку, в которой есть как общая, так и статическая библиотека? - PullRequest
2 голосов
/ 25 января 2010

Я пытаюсь создать общую библиотеку, которая внутренне связана со многими общими и статическими библиотеками. В моем случае моя общая библиотека не включает статическую библиотеку. Я хочу знать, что я пытаюсь, правильно ли это, или мне нужно преобразовать статическую библиотеку в общую библиотеку, а затем выполнить связывание

Мне нужно знать, есть ли флаг make-файла, который позволяет мне добавлять статическую библиотеку вместе с разделяемой библиотекой.

Пожалуйста, предложите.

1 Ответ

0 голосов
/ 25 января 2010

Вы можете создать библиотеку, которая зависит от другой библиотеки (статической и динамической). Но вам нужно интегрировать статическую библиотечную часть внутри себя (потому что эта не может быть загружена динамически)

dependence of your source code:
your_library -> static_library.lib
your_library -> dynamic_library.dll

how you implement can it (to be used by an executable):

your_library.dll (which contain your_library and static_library source code)
dynamic_library.dll (to distribute with your_library.dll)

or

your_library.dll
static_library.dll (to be created from the static_library.lib)
dynamic_library.dll (to distribute with your_library.dll)

edit: здесь возможно то, что вы ищете конвертирование статической библиотеки в разделяемую библиотеку (это для linux, но у вас будет то же самое для os):

.a files are just archives of .o object files, so all you need to do is unpack the archive and repackage them as a shared object (.so)
ar -x mylib.a
gcc -shared *.o -o mylib.so
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...