c语言动静态库

一,动静态库

1.什么是库文件?

用来保存函数和变量的仓库,只能使用库文件里的函数或者变量,但无法看到是如何实现的。

例如:printf,scanf,strcpy这些都是库函数,也就是保存在库文件里的函数

 

2.linux库文件:静态库.a 和动态库.so

3.linux库文件的存放位置:

/lib:系统启动和运行需要的库

/usr/lib:应用程序启动或者运行需要加载的库

 

4.静态库.a:编译时加载

 

5.动态库.so:运行时加载

 

6.如何制作静态库

gcc -c .c文件 生成.o目标文件

ar rcs lib静态库名.a .o文件

gcc test.c -l静态库名,-l只能到/lib和/usr/lib两个目录下找库,所以我们自己写的库要加-L+路径,也可把自己写的库加入到/usr/lib目录下。

 

制作动态库

gcc -shared -fpic add.c -o lib动态库名.so

在同时有重名动静态库时,优先链接动态库

连接动态库:gcc test.c ./libadd.so -o add

 

动态库如何升级?:直接替换库

动态库升级:先重新生成新的库,再重新编译

 

使用动静态库区别?

1.使用动态库编译的程序易于升级,静态库难于升级;

2.使用动态库生成可执行文件小,占用内存小;静态库生成文件大,占用内存大;

3.使用动态库编译程序快于静态库;

4.使用动态库编译程序运行时间慢于静态库;

5.使用动态库难以部署,静态库容易部署。

 

如何选择动态库与静态库?

编译时间需求和运行时间需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值