Ubuntu静态库文件一般是a为后缀,如libxxx.a,实际上是把全部o文件打包到一个文件中。o文件是指令的即可。
(.o: 目标文件,.a: 由目标文件构成的档案文件。)
1. 创建static.c文件,内容如下:
#include <stdio.h>
void static_fun(void)
{
printf("hi,sir!\n");
}
- 创建静态库,分二步:
gcc -c static.c //create static.o
ar -r libstatic.a static.o //create libstatic.a
至此,静态库创建完成。
#include <stdio.h>
int main(void)
{
printf("call static lib(.a)\n");
static_fun();
return 0;
}
编译命令:
gcc main.c libstatic.a -L. -o static_exe
其中-L.:表示在当前目录查找库文件,如果写为:-L./lib 则表示在当前目录的lib目录下查找库文件。
(or gcc main.c -lstatic -L. -static -o static_exe )其中 -lstatic 表示静态库的名字为static.
编译生成static_exe,windows用多了,名字加了个exe,嘿嘿。
4. 运行程序:
./static_exe
结果输出: call static lib(.a) hi,sir!