静态库与动态库的比较

1、静态库在编译的时候被加载,动态库在执行的时候被加载。

2、加载静态库编译所生成的可执行文件比使用动态库的方式要大。

3、静态库以.a为后缀,动态库以.so为后缀。

静态库的制作:
1.通过gcc -c add.c 生成目标文件 =》add.o
2.通过ar crs -o libadd.a add.o 生成静态库 =》libadd.a
3.通过gcc main.c -L. -ladd 链接静态库编译,生成可执行文件a.out
4.执行a.out即可
动态库的制作:
1.通过gcc -c add.c 生成目标文件 =》add.o
2.通过gcc -fPIC -shared -o libmyadd.so add.o 生成动态库文件 =》libmyadd.so
3.通过gcc main.c -L. -lmyadd 生成可执行文件 =》a.out
4,此时,运行找不到库文件,我们需要
	(1)将libmyadd.so放到/usr/lib或/lib目录下
	(2)通过export LD_LIBRARY_PATH=/home/linux/jn16081/day02/lib 将库所在的绝对路径添加至环境变量中(通过echo $LD_LIBRARY_PATH查看此环境变量的值;通过unset LD_LIBRARY_PATH来删除此环境变量里的值)
	(3)在/etc/ld.so.conf.d/下新建一个my.conf文件,在里面写入库所在的绝对路径,保存并执行ldconfig执行配置文件。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值