创建静态库和动态库

库是一种可执行代码的二进制形式。可以被操作系统载入内存执行。


一般分为两种库:静态库和动态库。 

二者的不同之处在于代码的载入时刻不同。

 当程序在编译的时候,静态库会被连接到目标代码中,这样程序的体积会很大。


动态库会在程序运行的时候被载入内存。库可以实现代码的复用。


共享库的好处是 不同的应用程序调用同一个动态库时,在内存中仅有一个共享库的实例。

在编程的时候,我们往往喜欢模块化的思想,将各种 

                                   函数或者数据结构打包成静态库或者动态库,在以后编程的时候

                                                    如果需要引用,只需用加上库进行编译即可。



打包命令:

制作静态库:

gcc    -c    fun.c  -o     fun.o 

ar   rcs         libfun.a       fun.o

gcc   main.c     -o    main         -L.  /*   代表路径  */                      -lfun   

制作动态库:

gcc   -fPIC -c fun.c   -o  fun.o

gcc  -shared  -fPIC  -o   libfun.so          fun.o

gcc   main.c   -o   main        -L.       -lfun


最后必须将库加入到环境变量  有三种方法:


1.export  LD_LIBRARY_PATH=$(PWD);

2.将动态库加入到/lib  或 /usr/lib  下,ld默认能找到

3. 如果在其他目录中,将其加入到 /etc/ld.so.cache

加入方法:vim  /etc/ls.so.cache     在该文件中加入路径

运行 ldconfig    该命令用于重建/etc/ld.so.cache


     


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值