head.h文件如下
#ifndef _HEAD_H_
#define _HEAD_H_
int add(int a, int b);
int sub(int a, int b);
#endif
add.c文件如下
#include"head.h"
int add(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;
}
main.c 文件如下
#include<stdio.h>
#include"head.h"
int main(void){
int sum = add(2, 24);
printf("sum = %d\n", sum);
return 0;
}
gcc *.c -c -I ../include 将所有.c文件编译成.o文件
ar rcs libMyCalc.a *.o 将.0文件生成静态库
gcc main.c lib/libMyCalc.a -I include -o calc 测试使用静态库提供的功能。
通过nm命令查看静态库的内容
静态库的优缺点
程序用到静态库的哪些函数,就只加载对应的.o文件,不会直接将整个静态库文件的.o文件都加载到程序