静态库,libxxx.a,在编译时就将库编译进可执行程序中。
1.优点:程序的运行环境中不需要外部的函数库。
2.缺点:可执行程序大
静态库的制作:
1.生成目标文件:gcc -c file.c .o
2.静态函数库创建命令ar
操作静态库的几个实例:
情况1: 如果从别处得到一个静态库libunknown.a,想知道其中包含哪些模块。
命令:ar -t libunknown.a
静态库的编译:gcc -o main main.c -L. -lfile编译main.c就会把静态函数库整合进main。
其中:
-L指定静态函数库的位置供查找,注意L后面还有'.',表示静态函数库在本目录下查找。
-l则指定了静态函数库名,由于静态函数库的命名方式是lib***.a,其中的lib和.a忽略。
删除libaddsub.a后main依然可以运行,因为静态库的内容已经整合进去了。
例子讲解:
创建一个C语言文件,并写入如下代码
#include<stdio.h>
int main()
{
int x,y;
int ret;
x=10;
y=5;
ret =sub(x,y);
printf("ret is %d\n",ret);
return 0;
}
创建一个sub.c文件,并写入如下代码
int sub(int x,int y)
{
return (x-y);
}
生成目标文件和静态函数库
重新编译命令
执行代码,编译若有报错是没有找到sub函数,直接运行代码
zhixzhi'x