嵌入式复习3

第三天:

1. 库文件的概念和使用

1.1 库文件的概念和作用

1.2 库文件的分类

1)静态库

2)动态库(共享库)

2. 静态库的概念和特性

2.1 静态库的概念

2.2 静态库的特性

2.3. 静态库的生成

2.4.静态库的调用方法和步骤

3. 动态库的基本概念和特性

3.1 动态库的概念

3.2 动态库的特性

3.3 动态库的生成

3.4 动态库的调用

4. 编译器默认优先选择动态库,强制使用静态库的方法是使用-static选项

5. 动态库的动态加载

  #include <dlfcn.h>

   Link with -ldl

(1)dlopen函数

void *dlopen(const char *filename, intflag);

第一个参数:字符串形式的共享库文件名

第二个参数:具体的操作标志,加载方式

   RTLD_LAZY - 延迟加载

   RTLD_NOW - 立即加载

返回值:成功返回一个句柄(地址)信息,失败返回NULL;

函数功能:主要用于将参数filename指定的共享库文件加载到内存中;

(2)dlsym函数

   void *dlsym(void *handle, const char *symbol);

第一个参数:具体的句柄信息,也就是dlopen函数的返回值

第二个参数:字符串形式的符号名,这里指函数名

返回值:成功返回函数的地址,失败返回NULL;

函数功能: 主要用于查找handle指向共享库中名字为symbol的函数在内存中的地址信息;

(3)dlclose函数

   int dlclose(void *handle);

函数功能:主要用于关闭/卸载参数指定的共享库,参数为dlopen函数的返回值,成功返回0,失败返回非0;

(4)dlerror函数

   char *dlerror(void);

函数功能:主要用于获取调用dlopen()/dlsym()/dlclose()函数之后产生的错误信息并返回,如果上述函数没有产生错误,则返回NULL;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值