深入分析linux下 动态库的显性调用(dlopen)和隐性调用区别

显式调用动态库的内存占用量只会在实际使用过程中增加,比如测试中从1 5 6 4 kb开始增加。
适合大型项目,具有按需加载功能,但操作复杂。
隐式调用无论是否使用库都会加载,内存使用更简单,但可能会不必要地加载库。
建议生产环境使用,以简化编写和维护。

实用提醒:优先考虑显式动态库以节省内存,仅在必要时加载库函数。

linux动态加载so库的过程

dlopen 所以无法打开库,请先检查 LD_LIBRARY_PATH。

dlsym 找不到符号,首先确保 .so 版本正确。

dlclose后资源没有释放,谨防内存泄漏。

找不到库,请添加 LD_LIBRARY_PATH。

版本冲突,更新 ldconfig 缓存。

自己掂量一下。