Linux下的静态库与动态库

本文介绍了静态库与动态库的基本概念及它们之间的主要区别。静态库在编译时将代码链接到执行程序中,提高了运行效率,但也增加了可执行文件的大小;动态库则在程序启动时进行加载,减小了可执行文件的体积,便于更新和维护。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1静态库与动态库的区别

库文件可以为我们在编写程序时提供函数,文件等,我们可以直接使用,但不能看到其实现,静态库,代码在执行之前已经加入到执行代码中,成为执行程序一部分,文件后缀为.a。动态库,代码在执行程序启动时加载到执行码代码中,文件后缀为.so。

2静态库与动态库的优缺点

静态库由于其代码在执行程序之前已经加入到执行吗中,所以他运行效率高,自然也造成编译速度慢的缺点,并且他可执行文件体积大。动态库由于函数库文件在连接阶段并不与目标文件连接在一起,气可执行文件体积小,编译速度快,但运行效率低一些。动态函数库的改变并不影响你的程序,所以动态函数库的升级比较方便。 

3静态库与动态库的制作使用

1》静态库

先通过gcc -c objtest.c生成.o文件然后通过ar -rc libtest.a libtest1.o libtest2.o生成库文件通过gcc -o test main.c -I头文件的路径 -L库文件的路进 -ltest来调用库文件。

2》动态库

先通过gcc -shared -fPIC -o test.so main.c生成库文件通过gcc main.c -L -ltest.so -o main调用库文件。

初学者的一点学习心得,,,,哭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值