У меня следующая проблема:
У меня есть два отдельных проекта c ++, и я хочу использовать определенные функции из одного из них в другом.Я собираю с использованием g ++, на Linux.
Я решил сделать это, создав из проекта общую библиотеку для использования функций.Я добавил -fPIC к флагам компилятора в Makefile, а затем создал общую библиотеку следующим образом:
g++ -shared -Wl,-soname,libmyproject.so.1 -o libmyproject.so a.o b.o c.o -lc
Затем я просто скопировал файл .so и файлы заголовков в (родительский) каталог новогопроект и добавил следующее в свой Makefile:
В LIBS:
-L/../external_proj/libmyproject.so
В CXXFLAGS:
-I/../external_proj
Затем я # включаю соответствующий заголовочный файл в место назначениякод проекта и попробуйте вызвать определенные функции из исходного проекта.Однако, когда я компилирую целевой проект, я получаю сообщение об ошибке «неопределенная ссылка» для импортированной функции.
Мой вопрос: есть ли что-то, чего мне не хватает в этой настройке?Возможно, что-то нужно добавить в заголовки в исходном проекте, чтобы экспортировать функции, которые я хочу использовать?
Должен заметить, это первый раз, когда я пытался использовать разделяемую библиотеку таким образом.Благодарю.