日期:2014-05-16 浏览次数:20820 次
原文:http://blog.chinaunix.net/space.php?uid=20543672&do=blog&id=94271
?
我们通常把一些公用函数制作成函数库,供其它程序使用。
函数库分为静态库和动态库两种。
静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。
动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。
本文主要通过举例来说明在Linux中如何创建静态库和动态库,以及使用它们。
在创建函数库前,我们先来准备举例用的源程序,并将函数库的源程序编译成.o文件。
第1步:编辑得到举例的程序--hello.h、hello.c和main.c;
hello.h(见程序1)为该函数库的头文件。
hello.c(见程序2)是函数库的源程序,其中包含公用函数hello,该函数将在屏幕上输出"Hello XXX!"。
main.c(见程序3)为测试库文件的主程序,在主程序中调用了公用函数hello。
?
?程序1: hello.h
?#ifndef HELLO_H
?#define HELLO_H
?
?void hello(const char *name);
?
?#endif //HELLO_H
?
?
?程序2: hello.c
?#include <stdio.h>
?
?void hello(const char *name)
?{
??printf("Hello %s!\n", name);
?}
?
?
??程序3: main.c
?#include "hello.h"
?
?int main()
?{
??hello("everyone");
??return 0;
?}
?