C语言 gcc 静态库
程序员文章站
2022-05-07 12:11:49
...
静态库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
推荐阅读