静态库和动态库理论比对
静态库在链接时直接将库导入程序,而动态库则是将库调入内存,什么时候用什么时候调。静态库用在对空间要求较低,对时间要求较高的核心程序中,如操作系统开机例程。动态库用在对时间要求较低,对空间要求较高的程序中
制作静态库及使用步骤
1、将要制作静态库的.c文件生成.o文件 gcc -c add.c -o add.o
2、使用ar工具制作静态库
ar rcs lib库名.a add.o
-c,创建静态库文件
-s,充值静态库索引
-r,将objfile文件插入静态库尾或者替换静态库中同名文件
3、编译静态库到可执行文件中:
gcc test.c -o test.out lib库名.a 【库所在目录(默认为当前目录)】
动态库的制作
1、编写库的源代码 fun.c
2、将其编译成.o文件
gcc -fpic -c fun.c -o fun.o
-
-fpic
:创建与地址无关的编译程序, 目的就是为了能够在多个应用程序间共享.
3、将.o文件生成动态库
gcc -shared fun.o -o libfun.so
-
-shared:
参数的作用是告诉编译器生成一个动态链接库。
4、编写测试代码main.c 并编译
gcc -o main main.c -L. –lfun
-I(大写的i Include):告诉编译器在哪里找头文件 -L(库Lib):告诉编译器在哪里找库文件 -l (小写的L):要链接哪个动态库,写库名(即add)