分类: LINUX
2011-03-23 17:38:02
函数库分为静态库和动态库两种。
静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。
动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。
1.将源文件编译成.o文件
gcc -c log.c
这样会生成log.o文件
2.生成静态库(以lib开头,以.a结尾)
ar cr liblog.a lib.o
这样就生成了静态库liblog.a
如何使用它内部的函数呢?只需要在使用到这些公用函数的源程序中包含这些公用函数的原型声明,然后在用gcc命令生成目标文件时指明静态库名,gcc将会从静态库中将公用函数连接到目标文件中。注意,gcc会在静态库名前加上前缀lib,然后追加扩展名.a得到的静态库文件名来查找静态库文件。
3.使用静态库liblog.a
在main.c中包含liblog.a中函数的原型声明log.h,就可以使用它内部的函数了
gcc -o log main.c -L. -llog
就会生成可执行文件log
4 生成动态库(以lib开头,以.so结尾)
gcc -shared -fPCI -o liblog.so log.o
就会生成liblog.so
其使用方法和静态库一样