Linux学习笔记之库文件

库文件的实质是预先编译好的方法的集合。

库文件分为静态库和动态库(共享库)两种:Linux系统静态库扩展名为: .a ;动态库扩展名为:.so

                                                                             windows系统静态库扩展名为: .lib;动态库扩展名为: .dll


静态库:

               (1)特点:程序在链接过程中直接将库中的内容复制到生成的可执行文件当中。因此静态库是在程序的链接阶段被复制到程                                  序当中,和程序的执行过程没关系。即静态库生成的可执行文件最终执行时并不依赖库文件。

               (2)创建命令:

                     例:有两个源文件:main.c max.c

                           1)gcc -c main.c max.o(生成main.o和max.o文件)

                           2)使用ar将目标文件归档     ar crv libxxx.a main.o max.o 

动态库(共享库):

                (1)特点:动态库在链接阶段并没有被加载到程序当中,而是在程序运行时被系统动态加载到内存当中供程序使用。

                (2)创建命令:

                     例:有一个源 文件main.c

                          gcc  -fPIC  -shared  -o libxx.so main.c


静态库和动态库的区别:静态库的可执行文件中包含库代码的一份完整的拷贝,因此,当它被多次使用时会有多份没用的拷贝在内存中,所以比较占内存;而动态库则只需要载入一次动态库,不同程序可以得到内存当中相同的动态库的副本,因此会节省许多内存。


系统调用执行的过程中系统调用与库函数的区别:执行用户代码时,处于用户态;执行内核代码时处于内核态。

                                                                                      库函数的实现在函数库里面,而系统调用的实现在内核中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值