静态库的优点
不想让用户知道自己的代码实现,却又让用户使用功能,就将写好的代码放到库文件中(也可以减少每次源码进行编译的时间,.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.cint min(int a,int b){return a>b?b:a;}
//max.cint 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文件转换为静态库。