1、静态库的制作
1)命名规则 lib + 库的名字 + .a 例如 libmytest.a 库的名字就是mytest
2)制作步骤 生成对应的.o文件 .c 文件生成 .o 文件 添加 -c参数 然后将生成的.o文件打包 ar rcs + 静态库的名字(libmytest.a) + 生成的所有的.o 文件
首先创建好如下的目录结构:
//main.c
#include <stdio.h>
#include "head.h"
int main(void)
{
int sum = add(2, 24);
printf("sum = %d\n", sum);
return 0;
}
//head.h
#ifndef __HEAD_H_
#define __HEAD_H_
int add(int , int);
int sub(int , int);
int mul(int , int);
int div(int , int);
#endif
//add.c
#include "head.h"
int add(int a, int b)
{
int result = a + b;
return result;
}
//div.c
#include "head.h"
int div(int a, int b)
{
int result = a / b;
return result;
}
//mul.c
#include "head.h"
int mul(int a, int b)
{
int result = a * b;
return result;
}
//sub.c
#include "head.h"
int sub(int a, int b)
{
int result = a - b;
return result;
}
代码见上图
这里会出现找不到头文件的情况 所以我们要指定头文件的路径
然后将src目录的全部.c文件编译成.o文件 gcc *.c -c -I…/include
然后打包
将生成的库文件放到lib目录下 mv libmytest.a …/lib
3)发布和使用静态库 将lib目录和include目录发布给用户就可以了
使用 gcc main.c lib/libmytest.a 会报错 需指定头文件目录
第二种写法: gcc main.c -Iinclude -L lib -l mytest -o main
参数 -Iinclude 指定有文件目录 -L 指定库文件目录 -l 库名