相关疑难解决方法(0)

C++:dlclose不会卸载共享库

我有一个使用dlopen(带有标志RTLD_NOW | RTLD_GLOBAL)加载的共享库.如果此库正在使用主程序中的函数,则它不会卸载.所以我最终得到了这个共享库的相同代码,即使我卸载(使用dlclose),更改,编译,(重新)加载它.

我的目标实际上是在对其进行更改后重新加载相同的库,这样我就不必重新启动整个程序来测试我的代码.

我在Linux Ubuntu 10.04上使用g ++ 4.2.3.

(编辑)

解决了:

"由于RTLD_GLOBAL,"加载的库使用符号".实际上,我在链接时嵌入了另一个.a嵌入的符号,可能会被回调并阻止我的库关闭...我认为可以使用dlopen(...,RTLD_NOLOAD)验证是否已卸载lib以检出库已正确卸载.

c++ shared dlopen

9
推荐指数
1
解决办法
6618
查看次数

标签 统计

c++ ×1

dlopen ×1

shared ×1