Linux 静态库共享库总结

本文详细介绍了静态库和共享库的概念,包括它们的优点和缺点。制作静态库涉及编译目标文件和打包生成静态库,而使用时可通过指定库文件路径。共享库则需要编译时加入-fpic选项,并通过ldd确保正确加载。使用共享库时,可能需要设置环境变量以指定查找路径。
摘要由CSDN通过智能技术生成

库:
库文件其实是目标文件的集合,可以被其他代码所调用的,目的是把代码封装成库文件后方便使用,方便管理、安全性高、保密性强。

静态库:调用静态库其实就是把静态库中的二进制指令拷贝到可执行文件中。
优点:相对而言静态库运行速度更快,不需要依赖静态库文件。
缺点:可执行文件较大,当静态库文件修改后,可执行文件需要重新编译。

共享库:就是带入口的可执行文件,调用共享库时其实就是跳转到共享库二进制指针的位置即可,所以可执行文件执行时,共享库会被一起加载到内存中。
优点:可执行文件较小,当共享库文件修改后,可执行文件不需要重新编译即可使用。
缺点:运行速度比静态库慢,可执行文件运行时需要依赖共享库文件

制作静态库:
1、编译出目标文件
gcc -c code.c
2、打包目标问价生成静态库
ar -r libxxx.a a.o b.o c.o …
使用静态库:
1、直接使用(在同一目录下)
gcc code.c libxxx.a
2、指定库文件的加载位置(xxx是libxxx.a去掉前缀和后缀)
gcc code.c -Lpath -lxxx
3、通过设置环境变量来指定静态库文件的查找路径
打开系统配置文件:vim ~/.bashrc
在文件末尾添加:
export LIBRARY_PATH=$LIBRARY_PATH:path
保存并退出,重新加载配置文件:
source ~/.bashrc
使用静态库: gcc code.c -lxxx 即可

注意:如果删除环境变量,许哟啊关闭终端,重新打开才删除成功

共享库:
制作共享库:
1、编译出目标文件
gcc -c -fpic code.c
2、打包目标文件生成共享库
gcc -shared -fpic code.o -o libxxx.so
使用共享库:
1、直接使用
gcc code.c libxxx.so
注意:./a.out失败是因为执行共享库时默认的查找路径是/lib
2、指定库文件的查找路径
gcc code.c -Lpath -lxxx
3、通过设置环境变量来指定共享库文件的查找路径
打开系统配置文件:vim ~./bashrc
在文件的末尾添加:
export LIBRARY_PATH=$LIBRARY_PATH:path
保存并退出,重新加载配置文件:
source ~/.bashrc
使用共享库:
gcc code.c -lxxx

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值