c++ - 在 C++ 中使用动态加载重新加载库

标签 c++ dlopen dynamic-loading

如果我在 C++ 中使用动态加载打开一个库,我可以稍后重新加载同一个库的更新版本吗?我会自己对此进行测试,但在我开始将其作为我正在从事的工作的潜在解决方案之前,我很好奇它的可行性。

以防万一,我在 Linux 上运行。能够使其在其他操作系统上运行会很好,但这不是必需的。

最佳答案

从技术上讲,您当然可以——没有什么能阻止您这样做。这就是 dlopen()/dlclose() 在用户空间中的工作方式。这也是内核加载和卸载动态模块等的方式。但在实践中,编写糟糕的共享对象或主机程序可能会引入灾难性的副作用渲染进程(或内核,如果你正在谈论内核模块)无法使用。

关于c++ - 在 C++ 中使用动态加载重新加载库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14372034/

相关文章:

python - `CDLL()` 如何找到只有文件基名的文件来加载?

c++ - Kill -9时堆内存会被释放吗?

c++ - 常量大小的数组,在编译时已知..但仅在派生类中

c - 使用 dlinfo 打印库中的所有符号

c++ - dlclose 并没有真正卸载共享对象,无论它被调用多少次

javascript - 强制动态加载的 JavaScript 不在 google chrome 上缓存

c++ - 动态加载 DLL 导出的数据

c++ - 显式使用 main 中的构造函数调用作为函数调用参数

c++ - 对此 argv 的使用感到困惑

c - 当提供库地址时,如何获取共享库中符号的地址?