这个问题是关于根据特定的条件动态加载特定的模块,例如环境变量和将函数调用链接到适当的模块。描述:
我有模块M1,它需要根据环境变量使用模块M2或M3。这就像两个模块M2和M3都提供了一个函数f()。以下是两个不同的问题:
如果有特定的环境变量,
M1希望调用M2::f(),如果设置了相同的环境,set.M2希望调用M3::f()。因此,M1::f() ->M2::f() -> M3::f()M2没有显示,而M1对f1()的调用总是只调用M3::f()。
因此,需要同时加载M2和M3,但也存在间接加载的问题。
这是C++环境,我们不想使用虚拟函数。我宁愿寻找一些链接解决方案,可能使这成为可能。
应用程序需要移植到多个OS/硬件平台上,但如果您能够告诉我仅适用于Linux和/或Windows,那就好了。
任何其他想法也是受欢迎的。
发布于 2020-09-25 04:29:02
我经历了一个明喻的情况,以节省内存和避免加载所有模块(插件)自动。我使用了dlsym库,并按需加载了所有模块。我可以分享代码片段,如果这是你要找的。你也可以在网上得到它。
https://stackoverflow.com/questions/64057731
复制相似问题