静态库libxx.a 对应 win下面的xx.lib
防止别人看到代码
nm查看静态库内容
假设有以下文件
|-- fn
| |-- add.c
| `-- sub.c
|-- h
| `-- head.h
|-- lib
`-- test.c
add.c内容
int add(int a,int b){
return a+b;
}
sub.c内容
int sub(int a,int b){
return a-b;
}
test.c内容
#include "head.h"
int main(void)
{
int a =1, b = 2;
printf("%d\n",add(a,b));
printf("%d\n",sub(a,b));
return 0;
}
head.h内容
#include <stdio.h>
extern int add(int a,int b);
extern int sub(int a,int b);
首先编译fn目录下的函数文件
gcc -c ./fn/*.c -I ./h
将编译好的.o文件,打包成静态库,静态库命名必须以lib开头以.a结尾
ar rcs ./lib/libcalc.a *.o
编译整个工程文件,默认gcc会找标准库,自己的库需要指明,_L指定库的目录,-l指定库的名称.库名会省略掉lib和.a
gcc test.c -o test -I h/ -L lib/ -l calc
本文详细介绍了如何构建和使用静态库。通过实例演示了从源代码到生成静态库的全过程,并展示了如何在项目中链接并使用该静态库。
482

被折叠的 条评论
为什么被折叠?



