制作步骤
- 编译为 .o 文件
createliba目录下
结构为
├── head
│ └── test.h
├── jia.c
├── jian.c
├── cheng.c
├── chu.c
这4个源文件,提供 + - * /算数运算, 使用了 head目录下 test.h文件
先编译为.o文件
gcc -c *.c -I./head
ls
cheng.c cheng.o chu.c chu.o head jia.c jian.c jian.o jia.o
- 将 .o文件 打包
ar rcs libxxx.a file1.o file2.o file3.o ...
比如我做的实验是:
ar rcs libjjcc.a *.o
- 将头文件与库一起发布
这里我把头文件 head/test.h 与步骤2生成的libjjcc.a
cp到testliba目录下
└── testliba
├── app
├── libjjcc.a
├── main.c
└── test.h
cat main.c
#include "test.h"
int main() {
int a = jia(3, 5);
printf("3 + 5 = %d", a);
}
编译main.c
gcc main.c -o app -L ./ -l jjcc (其中-L,指定库目录, -l是指定库名)
生成app可执行文件
nm libxxx.a 查看打包的静态库