linux 静态库和动态库的制作

静态库:会在编译时装载到文件中,占用编译时间
取名方式:lib库名.a
1.目标文件的获取:gcc -c yyy.c  编译出 yyy.o
2.命令:ar -cr lib库名.a yyy.o
头文件发布(cp)到:/usr/local/include
库文件发布到:/usr/local/lib

编译加上链接选项:gcc -o main mian.c -l库名
-l参数必须在最后

动态库:仅仅是引用,在运行时找到指定的库函数使用,占用运行时间
取名方式:lib库名.so
1.命令:gcc -shared -fpic -o lib库名.so yyy.c

2.头文件发布到:/usr/local/include
3.库文件发布到:/usr/local/lib

4.在/etc/ld.so.conf中添加路径:/usr/local/lib
5.配置好配置文件后,需要让系统重新读一遍配置文件:
/sbin/ldconfig 回车

6.编译加上链接选项:gcc -o main main.c -l库名

当动态库和静态库重名的时候优先加载动态库
通过ldd ./程序 可以查看当前程序所链接的动态库

如果同时链接多个库需要指明多个-l,被依赖库写在目标库之后

如果觉得编译麻烦可以写入到makefile中:
LDFLAGS+=-l库名 -l库名
$(LDFLAGS):可以引用该变量

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值