静态库的制作
🍅关于库的概述
库文件是一类文件,可简单将库文件看作一种代码仓库,它提供给使用者一些可以直接拿来用的变量,类或者函数
库是一种特殊的程序,和一般程序区别不大,只是库不能单独运行
库文件有两种:静态库和动态库
- 静态库在程序的链接阶段被复制到了程序中
- 动态库在链接阶段没有被复制到程序中,而是程序在运行时有系统动态加载到内存中供程序调用
库的好处
- 代码保密(别人用你的库,但是不会了解你的源码)
- 方便部署和分发
🍅库的制作
命名规则
- Linux : libxxxx.a
- lib : 前缀(固定)
- xxxx : 库的名字
- .a :后缀(固定)
💡静态库的制作
- 先由
gcc
获得.o
文件,即是gcc -c 文件
- 再将
.o
文件打包,使用 ar 工具(archive)ar rcs libxxx.a xxx.o xxx.o
(ar rcs 库的名字 构成库所需的.o文件
)- r ---- 将文件插入备存文件中
- c ---- 建立备存文件
- s——索引
例子
比如在文件A下有很多.c
结尾的文件,如add.c div.c head.h main.c mult.c sub.c
,现在要把它们打包成一个静态库供他人使用
则在终端下进入到该文件目录下(即目录下都是刚刚的.c
结尾的文件),输入gcc -c add.c div.c mult.c sub.c
,便可获得.o
文件(注意这里头文件不需要生成.o
文件,只需要.c
就好了)
随后输入ar rcs MyLib.a add.o sub.o mult.o div.o
,得到的MyLib.a
便是我们的静态库了加粗样式