静态库的优点
不想让用户知道自己的代码实现,却又让用户使用功能,就将写好的代码放到库文件中(也可以减少每次源码进行编译的时间,.c文件到可执行文件需要时间)。方法如下
ar crv libtemp.a fitst.o second.o//demo
gcc -o main main.c -L文件所在位置 -ltemp(库的名字)//demo
我们首先在.c文件中写一个函数(我们定义了两个.c文件,一个是min.c,max.c)代码如下
//min.c
int min(int a,int b){
return a>b?b:a;
}
//max.c
int max(int a,int b){
return a>b?a:b;
}
然后我们分别将源文件汇编
gcc -c min.c
gcc -c max.c
然后我们得到了min.o和max.o文件,如下图
之后我们将两个.o文件合为静态库文件,指令如下
ar crv libtemp.a min.o max.o,之后会生成一个libtemp.a文件。之后我们写一个main.c测试一下是否已经变为静态库代码如下:
1 #include<stdio.h>
2 #include<stdlib.h>
3 int max(int temp1,int temp2);
4 int min(int temp3,int temp4);
5 void main(){
6 int a=4;
7 int b=5;
8 printf("%d\n",max(a,b));
9 exit(0);
10 }
~
gcc -o main main.c -L文件所在位置 -ltemp(库的名字)之后用指令运行,之后打印出的结果为 5,所以我们已经完成了将.o文件转换为静态库。