使用dlopen()的符号链接
Using symbol links with dlopen()
我正在研究一个面向对象的C 项目:
- 使用大量RAM。
- 启动时有大量的磁盘输入/输出。
在正常操作期间,该软件的性能非常好。但是,由于上述两个因素,新版本的发布速度很慢(次要更新需要重新启动该软件(。
正如我所说,这是一个面向对象的系统,物体不断出现和消失。我想做的是从共享库中加载我的对象,这是指向当前版本的符号链接(例如libthing.so -> libthing.so.1
(。这样,我可以更改符号链接(例如,libthing.so -> libthing.so.2
(,以便使用最新版本的下一个对象是最新版本(有些现有对象是否具有较旧的逻辑,因为它们'最终从系统中清除(。
但是,上述符号链接策略对我不起作用。即使更改符号链接后,也使用相同版本的库。是我想做的吗?
该问题似乎与共享库的文件名有关。如果我在调用dlopen()
之前致电readlink()
,则将libthing.so
解决为libthing.so.1
。在此通话之后,拥有多个版本的库开放,同时可以按预期运行。
相关文章:
- 体系结构x86_64的未定义符号:链接器错误
- 如何防止 CMake 在构建时(而不是在安装时)为共享库创建符号链接?
- 如何将空文件夹和符号链接添加到存档 - libarchive
- boost::存在符号链接不取消引用
- c++ ReadDirectoryChangesW on directory,带有目录的符号链接
- 如何将libc++与调试符号链接起来?
- 如何使用 GetFinalPathNameByHandle 解析指向本地目录的符号链接?
- 在可执行文件中使用带有符号链接的相对路径
- 架构x86_64的未定义符号链接constexpr std :: array
- 使用dlopen()的符号链接
- 可能的 GCC 链接器错误会导致将弱符号和局部符号链接在一起时出错
- g++ 编译:我可以链接到带有符号链接二进制文件的目录吗?
- 如何在目录上迭代并识别或省略NTFS连接(符号链接ish)
- 与两个符号链接.一个在存档文件中定义
- 单一实例对象的未解决外部符号链接错误
- C++隐藏的符号链接
- 尽管存在符号链接,但 ld 无法加载库
- 导出类静态常量的未解决外部符号链接错误(仅限某些项目)
- 使用 boost 解析符号链接时,结果不等于原始路径名
- OpenCV 模块作为符号链接会导致 cmake 错误