linux下使用dl库,统一API
背景
由于是统一API的前提下,做成了不同实现了这些API功能的动态链接库,然后根据配置文件等,动态的做出选择去加载这些动态库,并且是在linux下,所以最终选择了dl库
主要代码
1 | //需要#include <dlfcn.h> |
完整代码已经放在了https://github.com/TreeAndFlower/loadlibdemo-linux
注意点
主要是,要对导出的动态库里的API,记得“extern c”
当没有extern c的时候,编译出来的动态库里API如下:
当extern c添加了以后,编译出来的动态库API如下:
另外需要注意的是
这个示例代码,仅在linux平台下生效,因为链接的dl库,头文件是#include <dlfcn.h>,这些是linux平台的;
windows下用Kernel32.lib库,头文件是Windows.h;
PS:
windows下的实现,博客链接为https://treeandflower.github.io/2019/09/09/windows下使用Kernel32-lib库-统一API/
如有描述不对之处,欢迎大家指正