静态库和共享库(动态库)的制作

什么叫库?

        库:就是一种可执行的二进制代码,可以加入到某个程序进行执行。

Linux 下有两种库:静态库共享库 ( 动态库 )
静态库 :在进行编译程序时,把静态库中的代码函数内容添加到目标代码程序中,程序在执行时就不需要再额外使用库。
共享库:在进行编译程序时,不会把动态库中的内容添加到目标代码程序中,只是做一个标记,程序在执行也需要动态库,因此程序体积偏小。

1. 静态库的制作

        a、把源文件变为二进制文件: .o
                gcc -c xxx.c -o xxxx.o
        b、创建静态库,就是把二进制文件 (.o ) 制作成库 : .a
                ar crs lib库名.a xxxx.o
        c、使用静态库,进行编译可执行程序
                gcc -o 可执行程序目标 xxxx.c -L 路径(L.当前位置)  -l 库名

2. 动态库的制作

        a、把源文件变为二进制文件: .o
                gcc -Wall -fPIC -c xxxx.c -o xxxx.o
        b、创建动态库,就是把二进制文件 (.o) 制作成库: .so
                gcc -shared xxxx.o -o lib库名.so
        c、使用动态库,进行编译可执行程序
                
                gcc -o 可执行程序目标 xxxx.c -L路径 -l 库名
因为使用共享库,在执行程序时还是需要共享库
解决办法:
1 、把库加入 /lib /usr/lib
2 、在 LD_LIBRARY_PATH 中加入动态库的路径
3 、在 /etc/ld.so.conf.d/ 新建文件(或添加已经存在的文件中)来存储当前动态库的路径,然后
ldconfig 刷新
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啵啵520520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值