2013-06-06 3 views
0

Я пытаюсь создать общую библиотеку для вызова jni. Я создал статическую библиотеку, используя -shared switch при создании. Мне нужно создать общую библиотеку, которая зависит от этой статической библиотеки. Я пытался использовать -l при создании общей библиотеки. Сбой сборки говорит о том, что заголовки, включенные в статические библиотеки, недоступны. Что именно я должен делать?Связать статическую библиотеку при создании общей библиотеки в gcc

ответ

0

Добавить -I/path/to/static/library/headers в CFLAGS, -L/path/to/static/library в LDFLAGS и он больше не будет жаловаться.

+0

Кодовая база, с которой я создал статическую библиотеку, не имеет заголовков, разделенных в папку include. Он имеет папку SRC, которая содержит все исходные файлы и заголовки. Я создал статическую библиотеку gcc -shared-команды, как я уже писал ранее. Сохраняет ли gcc структуру папок? Я использовал -I/path/to/static/library/SRC вместо CFLAGS, но это не работает –

+0

Ну @KavithaMadhu вы должны добавить их в свой существующий 'CFLAGS', не используя их как ваш единственный' CFLAGS' , Кроме того, наличие смешанных файлов источника/заголовка в порядке. И GCC не касается вашей структуры папок. И когда вы компилируете вещи, вы должны использовать 'gcc -c -fPIC' для каждого файла для создания объектных файлов, а затем связывать их вместе, используя' gcc -shared', чтобы сформировать окончательную общую библиотеку. –

Смежные вопросы