#青训营 x 字节后端训练营# ## 静态库vs动态库
静态库在程序链接阶段被复制到程序中
动态链接库在链接阶段没有被复制到程序中, 而是程序在运行时由系统动态加载到内存中供程序调用.
## 命名规则
Linux - libxxx.a
- lib 前缀固定
- xxx 库名称
- .a 后缀
Windows - libxxx.lib
## 制作
- gcc获得.o文件
`gcc -c add.c div.c mult.c sub.c`
- 将.o文件打包, 使用ar工具(archive)
`ar rcs libxxx.a xxx.o xxx.o`
- r - 将文件插入备存文件
- c - 建立备存文件
- s - 索引
`ar rcs libcalc.a add.o sub.o mult.o div.o`
## 使用
同时把*.a(lib文件夹下)和header.h(include下)给到用户
`gcc -I ./include/ -l calc -L ./lib/ main.c -o app`
展开
评论