我正在编写一些使用动态共享库作为插件的代码。
我用于构建共享库的命令行如下所示:
cc -shared -fPIC -o module.so -g -Wall module.c
在模块中,我可以调用在主可执行文件中加载的任何其他共享库中的函数。
但是我无法访问(导出)可执行文件本身的函数(我收到undefined symbol
错误)。
我的电话dlopen
看起来像这样:
void *handle = dlopen(plugin, RTLD_NOW);
谁能告诉我的模块如何回调我的可执行文件,而不必将所有可执行文件的实用程序功能放入另一个共享库中?