库文件是计算机上的一类文件,可以简单的把库文件看成一种代码仓库,它提供给使用者一些可以直接拿来用的变量、函数或类。
库是一种特殊的程序,编写库的程序和编写一般的程序区别不大,知识库不能单独运行。
库文件有两种,静态库和动态库(共享库),区别是:静态库在程序链接阶段被复制到程序中;动态库在链接阶段没有被复制到程序中,而是在程序运行时由系统动态加载到内存中供程序调用。
库的好处:代码保密、方便部署和分发
静态库的制作
命名规则:
linux : libxxx.a
lib:前缀
xxx:名字
.a:后缀
windows: libxxx.lib
步骤:
1.gcc/g++ 获得.o文件 例如
touch mycode.c
gcc mycode.c -c //得到mycode.o
2.将.o文件打包,使用ar工具(archive)
ar rcs libmycode.a mycode.o
r:将文件插入备份内存中
c:建立备存文件
s:索引
生成libmycode.a
使用静态库
├── include
│ └── head.h
├── lib
│ └── libcalc.a
├── main.c
└── src
├── add.c
├── div.c
├── mult.c
└── sub.c
生成库文件后我们对文件进行如下分区 src(source)存放源码 lib存放库文件 include放头文件
对main进行编译
gcc main.c -o main -I ./include/ -l calc -L ./lib
-I :指定include包含文件的搜索目录
-l :程序编译的时候,使用指定的库
-L:指定编译的时候,搜索库的路径