5

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

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

4

2 回答 2

3

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

于 2013-01-17T04:05:53.797 回答
0

正如已经回答的那样,这应该有效。关于dlopen/ dlcloseclean 在 C++ 中的使用,你应该看看这个答案C++ Dynamic Shared Library on Linux

于 2019-02-07T21:44:56.607 回答