内容来源: 牛客网
一、静态库制作
目标: 将已有代码封装成库
1. 准备好源码
必须要有头文件,以便于引用库内的函数
//文件名: add.c
#include"head.h"
int add(int a, int b){
return a+b;
}
//文件名: sub.c
#include"head.h"
int sub(int a, int b){
return a-b;
}
//文件名: head.h
int add(int a, int b);
int sub(int a,int b);
2. 把程序做成obj文件(未经过链接的二进制文件)
gcc -c add.c sub.c
得到add.o, sub.o文件
3. 打包成库
ar rcs libxxx.a add.o sub.o
注意:libxxx.a, 其中xxx是库的名字
比如libhello.a, 库的名字是hello
二. 静态库的使用
当前目录结构如下:
├── include
│ └── head.h
├── lib
│ └── libcalc.a
└── test.c
其中libcalc.a是需要使用的库,head.h是它对应的头文件
输入命令:
gcc test.c -o app -I include -l calc -L ./lib
参数说明:
-I: 指定搜索头文件的路径
-L: 指定搜索库文件的路径
-l: 库名,注意文件名libcalc.a对应的库名是calc
这样就得到了链接后的可执行文件app