编译器 静态库和动态库的制作和使用

库文件定义:库文件用来保存变量和函数,可以使用,但是看不到变量的定义和函数的实现(我认为库文件的作用就是保护自己开发的源代码不被使用者看到,用来开发公司卖自己所创造的代码的功能)

成就感来源于创造与毁灭

                                  ——如何保持对编程的兴趣

/lib目录 存放的是系统的库文件

cd /usr/lib 目录存放的是应用软件自带的库


静态库与动态库的区别

静态库是执行前就加入到执行代码中,动态库是在执行过程中用到时才加载的,这样就导致了静态库与动态库有如下区别:

1、使用静态库编译的程序执行速度快,使用动态库编译的程序执行速度慢

2、使用动态库编译速度快,使用静态库编译速度慢

3、静态库编译的文件生成的可执行文件占用的内存比较大,动态库编译的程序生成的可执行文件占用的内存比较小

4、静态库写的代码不易升级,动态库写的代码升级方便

5、静态库编译的程序更容易部署,动态库编译的程序不易部署


怎样制作静态库:

静态库的后缀名是.a

1. gcc -c add.c  先生成目标文件

2. ar rcs libadd.a add.o 

3. gcc main.c -ladd -L/root/11.11   -l 链接库文件   -L指定库文件所在的路径

4. ./a.out

  

怎制作动态库:

1. gcc -shared -fPIC -o libadd.so add.c

2. gcc main.c /root/suqian/11/11/libadd.so -o sdd

3. ./a.dd


libc.a  liba.so  :C语言自带的库包含printf scanf 字符串的处理命令  ,但里面没有数学库 math,h

数学库要链接数学库 libm.a libm.so  gcc main.c -lm

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值