先准备源码文件:
calc.h
#ifndef _CALC_H_
#define _CALC_H_
int add(int a, int b);
int sub(int a, int b);
int mul(int a, int b);
int div(int a, int b);
#endif
calc.c
#include "calc.h"
int add(int a, int b){
return a+b;
}
int sub(int a, int b){
return a-b;
}
int mul(int a, int b){
return a*b;
}
int div(int a, int b){
return a/b;
}
main.c
#include <stdio.h>
#include "calc.h"
int main(){
int c = add(1,4);
printf("%d\n", c);
return 0;
}
- 生成
.o
文件
执行命令
gcc -c calc.o calc.c
参数-c的含义是只进行编译,不进行链接。
- 由
.o
文件生成.a
文件,静态库的后缀名为.a
执行命令
ar rcs libcalc.a calc.o
ar
命令的详解请参考 ar (Linux的命令) 。
- 使用静态库
gcc -o main main.c libcalc.a
除了这种写法,还有一种方法
gcc -o main main.c -L. –lcalc
-L
指定要使用的静态库的所在目录。
-l
用来指定静态库的名称,名称之前的lib
和之后的后缀名是可以省略掉的。
在源文件同目录下会生成一个main文件,命令行执行./main
,得到结果为5
。
网友评论