如何编译生成Linux-C静态链接库
如何编译生成Linux-C静态链接库
目标生成的静态库文件为:libnpcp.a
举例:
我们有四个文件
分别为:npcp.c npcp.h other.h main.c main.h
在npcp.c里面#include “other.h”
#include “npcp.h”
main.c/h文件是用来调用我们生成的静态库文件的
在main.c里面包含npcp.h
#include “npcp.h”
当我们的接口不愿意直接被客户看到的时候,我们就需要使用静态链接库或者动态链接库来给客户提供接口
默认使用的gcc编译
gcc -c npcp.c //将npcp.c编译成npcp.o文件
ar cr libnpcp.a npcp.o //创建静态库libnpcp.a
静态库制作完了,如何使用它内部的函数呢?只需要在使用到这些公用函数的源程序中包含这些公用函数的原型声明,
然后在用gcc命令生成目标文件时指明静态库名,gcc将会从静态库中将公用函数连接到目标文件中。注意,gcc会在
静态库名前加上前缀lib,然后追加扩展名.a得到的静态库文件名来查找静态库文件
gcc -o npcp main.c -L. -lnpcp //在程序中使用静态库
./npcp //运行
因此我们提供给客户一个静态库文件,客户只需要在他所写的文件中包含我们的.h文件就可以使用
因此我们不仅要给客户libnpcp.a文件还需要给客户npcp.h文件