C语言 gcc 静态库

静态库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 
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

你可能感兴趣的:(编译)