linux上动态库和静态库的使用

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上面编译动态库和静态库,并能使用它。


只有注册用户登录后才能发表评论。


网站导航:
 

posts - 0, comments - 0, trackbacks - 0, articles - 16

Copyright © 子期