静态库和动态库

(1)什么是库

(2)静态库的制作 

 

  1. 汇编 生成对应的.o文件(命令:gcc -c add.c div.c mult.c sub.c)
  2. 创建静态库(命令:ar rcs libcalc.a add.o div.o mult.o sub.o)

 (3)静态库的使用

命令:gcc main.c -o app -I ./include/ -l calc -L ./lib/ (-I【i的大写】代表在include目录下找头文件,-l【L的小写】代表静态库的名称,-L代表在lib目录下找库)

 (4)动态库的制作

  1. 生成.o文件(命令:gcc -c -fpic add.c div.c mult.c sub.c)
  2. 得到动态库(命令:gcc -shared add.o sub.o mult.o div.o -o libcalc.so) 

   3. 动态库的使用(命令:gcc main.c -o main -I include/ -L lib/ -l calc)

(5)动态库加载失败的原因---工作原理

 

 配置动态库

1. 配置方法一(临时)

命令:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:【动态库的路径】

 注意:该环境变量在终端配置,为一个临时的环境变量,如果换一个终端或者开一个新的终端,依然会显示没有配置

 2. 配置方法二(永久 用户)

改变.bashrc文件内容 => 添加动态库的路径

 使得修改生效

命令:. .bashrc (或者 source .bashrc) 【.相当于source】

3. 配置方法三(全局 系统)

进入配置文件(命令:sudo vim /etc/profile )

添加动态库路径

 

 使得修改生效

命令: . .bashrc (或者 source .bashrc) 【.相当于source】

4.  配置 /etc/ld.so.cache 【该文件不能直接打开,但是可以通过改变/etc/ld.so.conf间接改变.cache文件】

进入文件命令:sudo vim /etc/ld.so.conf

将动态库路径输入在内

更新修改(命令:sudo ldconfig)

5. /lib/ , /usr/lib方式不建议使用,因为里面已经存在很多系统自带的动态库,若自己的动态库和系统的动态库重名了,可能会误改系统内容 

(6)静态库和动态库的对比

 

 

 

 ​​​​​​​

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值