我有一个程序,通过动态加载来实现插件系统,从一些plugin_name.so中加载函数(通常如此)。
但是我也有一个静态的“helper”库(称为helper.a),它的函数被主程序和插件中的主函数使用。它们不必以任何方式互操作,只是用于文本处理等辅助功能。
这个程序一旦启动,就不能重新加载或重新启动,这就是为什么我期望从插件而不是主程序中获得新的“helper”功能。
那么我的问题是,是否可以强制.so中的“插件函数代码”使用(静态链接到?)与主程序不同(可能更新)版本的“helper”?
这该怎么做?也许通过静态链接或将helper.a添加到plugin_name.so中?
但是我也有一个静态的“helper”库(称为helper.a),它的函数被主程序和插件中的主函数使用。它们不必以任何方式互操作,只是用于文本处理等辅助功能。
这个程序一旦启动,就不能重新加载或重新启动,这就是为什么我期望从插件而不是主程序中获得新的“helper”功能。
那么我的问题是,是否可以强制.so中的“插件函数代码”使用(静态链接到?)与主程序不同(可能更新)版本的“helper”?
这该怎么做?也许通过静态链接或将helper.a添加到plugin_name.so中?
.so
文件需要使用-fPIC
编译,混合编译非 PIC 和 PIC 代码是否会引起问题呢? - rubenvb