基本上整整一天都在看关于linux下如何构建静态、共享、动态库的章节,多多少少有了一些领悟。现在来总结一下。
库是目标文件的一个集合或容器。将有关联的文件整合到一个库中,可以简化开发人的工作。
文件将静态库中需要的部分整合到自己生成的目标文件中,不再需要静态库。
静态库举个例子:
同时在两个文件中详细定义这3个函数
initapi.c
randapi.c
这样就准备好了API
然后编辑test.c文件,其中
#include "randapi.h"
最后用
将他们3者整合到一起。
以上并没有用到库,下面将生成静态库
首先将两个 .c文件编译,但不连接,然后使用 ar -cru这个命令声称静态库
库是目标文件的一个集合或容器。将有关联的文件整合到一个库中,可以简化开发人的工作。
文件将静态库中需要的部分整合到自己生成的目标文件中,不再需要静态库。
静态库举个例子:
定义一个API头文件,中包含2个函数,但函数本身并不在头文件中
#ifndef __RAND_API_H
#define __RAND_API_H
extern void initRand(void);
extern float getSRand(void);
extern int getRand(int max);
#endif
同时在两个文件中详细定义这3个函数
initapi.c
randapi.c
这样就准备好了API
然后编辑test.c文件,其中
#include "randapi.h"
最后用
gcc initapi.c randapi.c test.c -o test
将他们3者整合到一起。
以上并没有用到库,下面将生成静态库
首先将两个 .c文件编译,但不连接,然后使用 ar -cru这个命令声称静态库