浅析C/C++ library

本文介绍了C/C++库的三种类型:静态库、共享库和动态加载库。静态库在编译时整合到程序中,而共享库在程序运行时动态加载。详细讨论了共享库的命名、使用方法、环境变量及其相关工具如ldconfig和ldd。动态加载库则允许程序执行时按需加载库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

  原来跑的好好的进程,重启后没跑多少就挂掉了,奇怪了。经过跟踪,原来是加载了一个.so文件,于是决定学习一下library相关的东东,现在和大家分享一下。

分类

C/C++ library可分为三类:静态库(Static Libraries)、共享库(shared Libraries)和动态加载库(dynamically loaded DL libraries)。

静态库在程序编译时会被连接到可执行程序中,程序运行时将不再需要该静态库。

共享库在程序编译时并不会被连接到可执行程序中,而是在可执行程序启动时被载入内存的,因此在程序运行时还需要动态库存在。

动态加载库在可执行程序执行的任何时候可以被加载。 DL libraries aren't really a different kind of library format (both static and shared libraries can be used as DL libraries

3 Static Libraries

创建方法:

ar rcs libmy_library.a file1.o file2.o

4 Shared Libraries

4.1 命名

soname: version number,由ldconfig -n $library_directory生成,程序加载依赖的名字,

library安装好之后,根据realname生成soname

realname: soname的基础上增加minor number

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值