什么是“ C静态库”?

我们将首先从静态库的基本定义开始。

“静态库是一袋目标文件,其中包含函数,目录的前面给出了每个名称的地址。 静态库是使用某种库管理程序从目标文件创建的。 静态库是构建环境的一部分。 静态库中的函数在构建时通过静态链接器连接到程序的主模块,以生成可执行程序。 (http://www.freetds.org/userguide/rtl.define.library.htm)”

在构建期间会发生静态链接,将目标文件放在一起,并创建一个单独的函数名称列表。 然后,链接器找到每个函数名称的定义。

静态链接器需要三种类型的输入:

链接对象

图书馆的位置

搜索顺序

链接器将所有目标文件合并为一个可执行文件。 它将每个函数引用替换为可执行文件所需的实际地址。

我们如何创建自己的静态库?

首先,我们可以将所有main.c函数文件放到一个文件夹中。 见下文:

将所有.c函数文件收集在同一位置之后,我们还可以创建头文件。 在这种情况下,我们将其命名为Holberton.h,它将包含所有功能.c文件的所有原型。 见下文:

接下来,我们将所有.c文件编译为.o文件。 我们将在终端中运行以下命令:

gcc -Wall -pedantic -Werror -Wextra -c *.c 
 ar -rc libholbertonschool.a *.o 
 ar -t libholbertonschool. 

现在,我们已经正式创建,编译和链接了我们自己的静态库。