2013-10-04 3 views
-1

Я создал общую библиотеку, скопировал ее в/usr/lib, запустил ldconfig (он отображается в списке при запуске с -v) и скопировал файл .h в/usr/include. Однако, когда я пытаюсь использовать Lib #include, я получаю «неопределенная ссылка на„method1“. Какой я делаю неправильно? Моя Makefile не имеет специальных команд, так как все файлы находятся в стандартных местах.Проблемы с разделяемой библиотекой Linux

+0

линкер не магия. Используйте '-lMyLibrary' (нижний регистр L), чтобы сообщить компоновщику поиск символов в вашей библиотеке. –

ответ

0

#include будет включать заголовочный файл при компиляции исходного кода.

Однако также необходимо связать с общей библиотекой. для большинства компиляторов Unix, что делается с -l flag

для общей библиотеки с именем libFoo.so , используйте флаг -lFoo при связывании вашей программы.

+0

Я старался быть умным и включал видимость #pragma GCC (скрытый) вокруг всего файла, и это удаляло функции, которые мне нужно было разоблачить - ошибка пользователя, как обычно! – user2810158

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