我有一个遗留的C++代码,我正在尝试重新设计它。如何告诉C++连接器,稍后将由dlopen添加一些类
我想将部分代码作为“.so”共享库从项目中取出,并通过“dlopen”动态加载它们。
我写了一个动态加载机制,可以在运行时动态加载新模块。
现在我想解耦来自主项目的现有模块。
例如,我从主项目中提取了模块“X”,并创建了可以稍后加载的共享库,但是主项目的某些部分直接使用了模块X的类,并且我无法更改它们。
我可以使用模块X的头文件编译项目,但链接器抛出“未定义的引用”错误。
我该如何告诉C++连接器这些类将在稍后由运行时的dlopen机制添加?
注:我可以通过复制模块X的创造“所以”文件‘/ lib目录’链接和运行项目文件夹和‘-Lx’标志链接时使用它,但如果我删除这个文件形成/ lib文件夹启动时项目失败。
是的,但我想删除链接时间依赖。我将X类更改为调用解耦模块函数的代理类。 – Emech