Linux_动静态库

  • 动态库
  • 静态库

刚开始学编程时,需要下载一个环境(vs2019),这个环境包括编译器和标准库,标准头文件。那么什么是库呢,库和头文件有什么关系呢?

  • 头文件里面放的函数声明,库文件里面放的是函数定义,因此头文件和库两者密不可分。

在Linux中静态库通常命名为libxxx.a,动态库通常命名为libxxx.so,但库的名字是去掉前缀lib和后缀后的字符串。比如libc.so 这个库的真实名字就是c

1.静态库的打包
  1. 将两个源文件编译为可重定位二进制文件(.o)
  2. ar -rc libxx.a *.o
  3. gcc Main.c -Iinclude -Llib -lxxx
    • -I 指定头文件路径 可以移到默认路径下
    • -L指定库文件路径 必须移到默认路径下
    • -l 指定库名字

image.png
ldd test :查看相关的文件

2.动态库的打包
  1. gcc -fPIC -c mysub.c gcc -fPIC -c myadd.c 形成与位置无关码
  2. gcc -shared -o libxxx.so *.o
  3. gcc -o mytest -Iinclude -Llib -lxxx,此时你告诉了编译器,但是没有告诉os,所以会报运行错误
    1. 解决办法:
      1. 环境变量:LD_LIBRARY_PATH
      2. 加入系统默认路径-软链接方式
      3. 配置文件:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值