日期:2014-05-16  浏览次数:20820 次

在Linux中创建静态库和动态库

原文: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;
?}

?