目录
(1)创建所需的hello.c,hello.h,main.c程序
一、用hello world作为例子
(1)创建所需的hello.c,hello.h,main.c程序
首先在终端中利用代码
mkdir hello
创建一个名为hello的文件夹
然后使用gedit文本编辑器生成hello.c,hello.h,main.c三个文件,三个文件源代码如下
hello.h
#ifndef HELLO_H
#define HELLO_H
void hello(const char *name);
#endif //HELLO_H
hello.c
#include <stdio.h>
void hello(const char *name)
{
printf("Hello %s\n", name);
}
main.c
#include "hello.h"
int main()
{
hello("world");
return 0;
}
(2)生成.o文件
利用代码
gcc -c hello.c
生成hello.o文件
(3)利用.o文件创建.a静态库
静态库文件名的命名规范是以 lib 为前缀,紧接着跟静态库名,扩展名为.a。例如:我们将 创建的静态库名为 myhello,则静态库文件名就是 libmyhello.a。在创建和使用静态库时, 需要注意这点。创建静态库用 ar 命令。在系统提示符下键入以下命令将创建静态库文件 libmyhello.a。
ar -crv libmyhello.a hello.o
(4)在程序中使用静态库
在使用到这些公用函数的源程序中包含这些公用函数的原型声明,然后在用 gcc 命令生成目标文件时指明静态库名,gcc 将会从静态库中将公用函数连接到目标文件中。注意,gcc会在静态库名前加上前缀 lib,然后追加扩展名.a 得到的静态库文件名来查找静态库文件。
输入
gcc main.c libmyhello.a -o hello
即可生成目标程序hello,输入
./hello
即可输出函数结果
删除静态库文件libmyhello.a后,发现程序依旧可以正常运行,表明公用函数hello已经连接到目标文件hello中了