当我们在编写程序需要调用库函数时,要在程序代码中添加包含库函数声明的头文件,编译器和链接器会根据头文件将我们编写的程序代码与库函数所在的库文件连接起来,生成可执行文件。
最简单的函数库可以看成是一些目标文件的“集合”。
0.创建两个函数源文件
1 #include <stdio.h> 2 3 void text1(int a) 4 { 5 printf("%d",a); 6 }
1 #include <stdio.h> 2 3 void text2(char *str) 4 { 5 6 printf("%s",str); 7 }
1.分别将两个函数源文件编译成目标文件。
gcc -c text1.c text2.c
.
2.创建包含两个函数声明的头文件
1 /* This is lib.h. It declares two functions 2 */ 3 4 void text1(int ); 5 void text2(char *);
3.编写测试程序,程序调用两个测试函数
1 #include <stdio.h> 2 #include "lib.h" 3 4 int main() 5 { 6 text1(1)‘ 7 text2("hello world\n") 8 9 }
4.编译成目标文件,显式链接调用函数的目标文件
gcc -o text.o -c text.c gcc -o text text.o text1.o text2.o ./text
5.将生成的两个函数目标文件集合在一起生成函数库
ar crv libtext.a text1.o text2.o
6.为函数库生成内容表
ranlib libtext.a
7.对测试程序文件进行显示链接函数库生成可执行文件(否则编译器会到标准c库去查找进行链接)
也可以用-L来访问函数库,因为函数库没有放在标准位置 -L路径 -l=lib
至此我们就完成了自己的一个函数库libtext.a了,并对它进行了测试。
时间: 2024-09-30 20:55:35