linux库文件学习1

1.概述

库文件,本质上是可执行代码的二进制形式,可被操作系统载入内存执行

我们可以理解为是一种储存了一定函数的文件夹可以供我们调用

如我们编写c语言程序时#include<stdio.h>的stdio即是库文件接口(即告诉我们库文件的用法), 它包含了输入输出函数

库文件有系统自带的,也可以我们自行制作

特别注意linux和windows是不同操作系统,二者库的二进制是不兼容的


2.库文件的分类

库文件分为静态库和动态库两种

二者的不同点在于代码被载入的时刻

静态库是在文件执行前将代码载入

动态库在执行过程中使用库文件

静态库后缀为.a 

动态库后缀为.so


3.静态库和动态库的区别

(1)效率:静态库储存在计算机固定的地址便于调用,所以在执行时静态库效率要高于动态库

(2)内存大小:静态库编译完后二进制占内存很大,不运行时很占内存

(3)部署:因为静态库内容是执行前载入,所以在执行过程中系统已知静态库全部内容,所以静态库相对便于部署

(4)升级:动态库作为编写的库具有很高的灵活性,便于升级


4.静态库的制作:

静态库的命名规范是前缀为lib紧跟库名后加.a后缀结尾

步骤:

(1)通过源文件编译为.o

(2)通过ar命令转换为.a文件,即生成库文件

ar命令用法

d:从库中删除成员文件

r:在库中加入成员文件;若存在,则替换

c:创建一个库

s:强制重新生成符号表

t:查看所包含的文件

例:首先用vim写一个源文件


将其编译转化为.o文件

通过ar变为库文件


如果需要使用,还需要生成对应的头文件





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值