Я пишу код, который использует динамические общие библиотеки в качестве плагинов.
Моя командная строка для создания разделяемых библиотек выглядит так:
cc -shared -fPIC -o module.so -g -Wall module.c
Внутри модуля я могу вызывать функции, которые находятся в любой другой разделяемой библиотеке, загруженной в основной исполняемый файл.
Однако я не могу получить (экспортированные) функции, которые находятся в самом исполняемом файле (я получаю ошибки undefined symbol
).
Мой вызов dlopen
выглядит следующим образом:
void *handle = dlopen(plugin, RTLD_NOW);
Кто-нибудь может посоветовать, как мой модуль может вернуться к моему исполняемому файлу, без необходимости включать все исполняемые служебные функции в еще одну общую библиотеку?