动态加载共享的可选对象
Dynamically load shared optional object
我知道我可以使用dlopen在C/C++中打开共享库。
我可以使用 dlopen 调用的结果来确定功能是否存在。
但是,我需要加载具有许多函数的现有库。
是否有替代方法可以为所有这些函数重新定义一长串函数指针版本,并为每个函数分配 dlsym?
一种可能的解决方案是重新思考一下。
共享可选库可能很大,但如果它是可选的,那么肯定是您正在编写的代码与它进行交互也是可选的?
为了减少 dlsym() 赋值的数量,您可以编写自己的动态库,该库与仅实现可选组件的可选库链接。
然后,从应用程序的非可选部分动态加载并仅分配应用程序的可选组件。
如果您的可选库是 C 库并且您的可选组件是C++对象,这可能会使事情过于复杂,但您有它......
相关文章:
- 共享对象、符号、C/C++ 库链接和加载
- ./main:加载共享库时出错:libopencv_highgui.so.4.0:无法打开共享对象文件:没有这样的文件或
- 在 win32 上生成 R 包:无法加载共享对象 (.dll)
- 指向临时对象的自定义迭代器(延迟加载)
- 加载共享库时出错:libbsoncxx.so._noabi:无法打开共享对象文件:没有此类文件或目录
- C++ csv 文件无法正确加载到矢量,它似乎知道对象在那里但不显示它们
- 将文件从 iOS 应用程序加载到 C++ 对象中/<iostream>iOS 上的问题
- 正在加载共享对象:文件中未定义版本Qt_5
- 如何将统一缓冲区对象数组加载到着色器中?
- 加载共享库时出现"错误:libSDL2_mixer-2.0.so.0:无法打开共享对象文件:没有这样的文件或目录
- 加载地址 X 时,对于 Y 类型的对象没有足够的空间
- 通过无符号 char 别名进行对象访问,加载和存储时会发生什么?
- 加载共享库时出错:无法在外部硬件上打开共享对象文件:
- IE 探索 11 < c++ ATL COM 浏览器帮助程序对象(加载项)来替换 DOM 中的文本
- 用LD_PRELOAD和C++中的全局作用域对象加载堆分析器
- C++如何使用CWnd*对象加载图像
- 将对象加载到指向对象的指针数组中
- GCC下的对象加载段错误
- Opengl对象加载器与纹理
- opengl中的对象加载器