【Linux】库文件的生成与使用

什么是库文件

库是一组预先编译好的方法的集合。Linux系统存储的库的位置一般在:/lib 和 /usr/lib。 在 64 位的系统上有些库也可能被存储在/usr/lib64 下。库的头文件一般会被存储在 /usr/include 下或其子目录下。

库有两种,一种是静态库,其命令规则为 libxxx.a,一种是共享库,其命令规则为 libxxx.so,

静态库

如何写一个静态库

先写好函数 , 在头文件中放入声明 ,对函数文件进行编译成.o文件 用ar创建库

使用 ar 命令将第一步编译的所有”.o”文件生成静态库,其中 :

c 是创建库文件

r 是将方法添加的库中

v是显示过程

如何使用写的库文件

由于这个库文件是自己写的 , 不像系统会自动链接c库那样找到我们写的库文件 ,所以编译如下

L路径 , -l库名字

如果我们把库文件移到标准库下 ,就不需要加路径了

共享库

静态库和共享库的区别

静态库是在引用它的程序中装载一份它的方法 ,好处是如果原库文件出现问题也不影响写的程序 ,因为已经提前装载好了 ,缺点是所占空间太大 ,如果十个程序引用就要装载十份 , 太浪费内存空间 ,而且如果原库做了改动,引用的程序还是更新前的。 在此基础上就有了共享库 ,在程序编译的时候不进行装载 ,只进行一个标记,在运行程序时动态加载原库 , 这样一个磁盘上只要一份库文件就够了。

共享库的生成和使用

ldd main 查看main程序用到的共享库

生成共享库:

使用共享库不仅要在生成可执行程序时 在后面加上库路径和名字 ,在运行可执行程序时也要加上 路径和名字 ,或者移到标准库lib下就不用加。

以下是指定程序链接共享库的位置 ,用环境变量来改变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值