库是二进制文件包含的代码能被程序调用,库有源码可以下载之后编译,也可以直接安装二进制包,一般放在 /lib /usr/lib 目录下。
静态库:在链接过程中把静态库中的相关代码复制到可执行文件中
优点:程序中已包含代码,运行时不再要静态库。程序运行时无需加载库,运行速度更快。
缺点:占用了更多的磁盘空间和内存。静态库升级之后,程序需要重新编译链接。
静态库创建:
第一步:gcc -c filename.c 生成 filename.o
第二步:ar crs libfilename.a filename.o 其中lib和.a 是固定格式
下面是示例代码:
creatlib.c
#include<stdio.h>
void prt()
{
printf("I love China\n");
return;
}
生成.o文件
生成库文件
调用过程:
创建主函数文件 test.c
#include<stdio.h>
void prt(); //声明库中将要被调用的函数
int main()
{
prt();
return 0;
}
编译及将库文件也链接进来,使用命令:gcc -o test test.c -L. -lcreatlib
此时已经生成好可执行文件test,./test看结果。
总结:
熟悉相关命令即可:
gcc -c filename.c //生成 filename.o
ar crs libfilename.a filename.o //生成库文件libfilename.a
gcc -o xxx xxx.c -L. -lfilename //链接静态库文件生成可执行文件xxx