静态库和动态库
来源:互联网 发布:java调用其他类的函数 编辑:程序博客网 时间:2024/05/16 11:05
1、静态库是在程序编译的时候被载入到程序的目标代码中,程序运行的时候不在需要改静态库,因此体积比较大。
2、动态库是在程序运行的时候载入的,程序运行的时候还需要动态库,因此所占体积比较小。不同的应用程序可以使用同一个动态库,因此,内存中只需要一份动态库。
静态库的使用方法:例如将hello.c文件封装为静态库libhello.a,并链接到main.c中
(1)gcc -c hello.c -o hello.o
(2)ar crs libmyhello.a hello.o
(3)gcc main.c -L. -lmyhello -o hello
其中,-L.代表在当前目录下查找静态库
lmyhello 代表libmyhello.a 在命令中会在自动的补全
动态库的使用方法:例如:将hello.c 文件封装为动态库libmyhello.so并使用main.c调用其中的函数
(1)gcc fpic -Wall -c hello.c
(2)gcc -shared -o libmyhello.so hello.o
(3)gcc main.c -L. -lmyhello -o hello
上面两步生成了动态库libmyhello.so,其中fpic代表生成的hello.o文件与地址无关,-l后面的(myhello代表的是libmyhello.so)
(3)使用动态库的方法有三种
a、把库copy到/usr/lib/或者/lib下
b、在LD_LIBRARY_PATH环境变量中添加库所在路径
export LD_LIBRARY_PATH=库所在的路径
c、添加/etc/ld.so.conf.d/*.conf文件,把库所在的路径加到文件末尾,并执行ldconfig刷新
在一般的开发中,我们的库不能太大,可以通过命令
strip libmyhello.so瘦身
删除符号表,别人不可查看,减小库的体积大小
- 动态库和静态
- 静态库和动态库
- 静态库和动态库
- 动态库和静态库
- 静态库和动态库
- 静态库和动态库
- 静态库和动态库
- 静态库和动态库
- 动态库和静态库
- 静态库和动态库
- 静态库和动态库
- 静态库和动态库
- 静态库和动态库
- 静态库和动态库
- 动态库和静态库
- 动态库和静态库
- 静态库和动态库
- 静态库和动态库
- 【Shiro】SpringMVC Mybatis Shiro RestTemplate的实现客户端无状态验证及访问控制
- 2957: 楼房重建
- 用requestAnimationFrame做轮播
- Java基础知识点总结
- Linux下编译代码错误-warning: deprecated conversion from string constant to 'char*
- 静态库和动态库
- 离心泵安全操作规程
- LeetCode部分题解
- Spring.net 类库目录
- [转发]机器学习资源大全
- textView第一次点击无效第二次响应第三次正常
- tomcat中配置https
- mysql 日期加减
- 为什么要使用host