c++ - 如何从 dlopen 的库 L 访问程序 P 中的静态变量?

标签 c++ linux gcc

我有一个库 (L),它由使用 dlopen 的程序 (P) 动态加载。 L 实现了一个插件接口(interface),因此回调它的父级以获得一些功能。

P内部是一个单例对象,动态创建一个线程池对象A。 我需要从 L 访问 A。

但是,因为单例通过使用静态变量工作,所以当 L 被加载时,它最终会创建它自己的实例,这在某些情况下会很好,但我想要在 P 中创建的实例。有没有办法解决这个问题?

最佳答案

L 中不应该有一个static A。让P 将A 的地址传递给L,即L.init(&A)

关于c++ - 如何从 dlopen 的库 L 访问程序 P 中的静态变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14992118/

相关文章:

c++ - 将二进制文件读入 vector<char> 读取小于完整文件

python - 在 Nvidia-Docker 中运行 CUFFT 例程

linux - Openni2运行make时出错

c++ - 在 OSX 上使用 GCC 映射文件

javascript - 右键单击并从上下文菜单访问功能后如何获取链接的 DOM?

c++ - 显式模板特化错误

c++ - 用于在容器中迭代一系列角度的成语?

linux - 内部脚本失败后清理外部 Bash 脚本

c - 如何识别大型C项目中的“死c文件”?

c++ - CBLAS_ORDER 不是 gcc 的类或命名空间,但在 VS2010 (Intel C++) 中编译良好