您的位置:首页 > 其它

静态库和动态库的使用

2016-02-11 22:05 169 查看
关于库
================
1,静态库和动态库
1.1 静态库:书店(卖出去) (优点:速度稍快,不依赖库 缺点:浪费存储空间)
1.2 动态库:图书馆(借用) (缺点:速度稍慢,依赖于库 优点:节省大量空间)(更常用)

2,制作静态库:(以example1.c、example2.c,假设这些都是不含main函数的代码)
gcc example1.c -o example1.o -c
gcc example2.c -o example2.o -c
ar rcs libxxx.a example1.o example2.o (将example1.o和example2.o放到libxxx.a中)

3,制作动态库:
gcc example1.c -o example1.o -c
gcc example2.c -o example2.o -c
gcc -shared -fPIC -o libyyy.so example1.o example2.o (将example1.o和example2.o放到libyyy.so中)

4,使用库文件:(假设main.c代码中使用了example1.c和example2.c的代码)
gcc main.c -o main -L库所在路径 -lxxx
gcc main.c -o main -L库所在路径 -lyyy

注意:
使用静态库编译的程序,可以不依赖于库直接运行。
使用动态库编译的程序,运行时,必须确保程序可以找到该动态库:
1. 将该动态库直接放置到系统的标准库路径下(比如/lib 、/usr/lib)
2. 将库所在路径设置到环境变量LD_LIBRARY_PATH中: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:库所在路径
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: