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