如果我在 C++ 中使用动态加载打开一个库,我以后可以重新加载同一个库的更新版本吗?我自己会对此进行测试,但在我开始将其作为我正在研究的潜在解决方案之前,我很好奇它的可行性。
以防万一,我在 Linux 上运行。能够使其在其他操作系统上运行会很好,但这不是必需的。
如果我在 C++ 中使用动态加载打开一个库,我以后可以重新加载同一个库的更新版本吗?我自己会对此进行测试,但在我开始将其作为我正在研究的潜在解决方案之前,我很好奇它的可行性。
以防万一,我在 Linux 上运行。能够使其在其他操作系统上运行会很好,但这不是必需的。
从技术上讲,你当然可以——没有什么能阻止你这样做。这就是dlopen()/dlclose()
在用户空间中的工作方式。这也是内核加载和卸载动态模块等的方式。但是,实际上,编写不佳的共享对象或主机程序可能会在渲染进程(或内核,如果您正在谈论内核模块)时引入灾难性的副作用无法使用。
正如已经回答的那样,这应该有效。关于dlopen
/ dlclose
clean 在 C++ 中的使用,你应该看看这个答案C++ Dynamic Shared Library on Linux。