Posted on 2010-09-24 10:04
子期 阅读(593)
评论(0) 编辑 收藏
Linux动态库的使用
生成动态库
与一般的make没有很大的区别,主要的区别在于执行gcc(cc)后面加一个生成动态库的参数“-shared”,正常情况都可以生成“.so”的动态库。
生成动态库后需要对动态库进行调用,调用动态库的方法有两种
1. 使用时进行加载
使用时加载相对来说比较麻烦:
(1) 在Makefile的时候带一个“-rdynamic”参数
(2) 打开动态库的时候需要指定动态库的位置
(3) 调用dlopen()打开动态库。
(4) 使用dlsym()方法获取动态库的函数指针。
(5) 如果调用失败dlerror()会返回错误信息。
2. 编译时加载
编译时加载相对比较简单
(1) 在Makefile的时候先引入动态库的路径放在编译命令的最后。
(2) 调用时直接调用动态库的方法。
Linux静态库的使用
生成静态库
与一般的Make唯一的区别在于生成目标文件后对目标文件进行ar一下获取“.a”静态库。
使用静态库的方法就只有一种,在编译的时候就加载,使用“-L”指定lib的路径,“libdate.a”转换成“-ldate”。具体看代码例子。在调用静态库的代码里面直接调用静态库导出的方法。
最后:个人认为好的教程文档不如demo代码,结合着demo代码再看看文档能帮助你快速的理解linux上面编译动态库和静态库,并能使用它。