一、静态库的制作
源文件(.h ,.c)-》预编译-》编译-》汇编-》目标文件(.o)—》ar命令打包生成静态库
假设已经编写好源程序add.c ,则先生成目标文件
gcc -c add.c -o add.o
ar命令把目标文件打包生成静态库文件
ar -rcs libtest.a add.o
rcs为参数,默认加上,意思分别为 r更新、c创建、s建立索引
libtest.a为加了前缀和后缀的静态库名字
二、静态库的使用
静态库需要将.a文件和头文件发给客户
假设测试文件为test.c,静态库文件为libtest.a,头文件为head.h
则编译命令为
gcc test.c -I./ -L./ -ltest
其中-I(大写i)./表示在当前目录下搜索头文件,-L./告诉链接器在当前目录下搜索库文件,-l (小写L)后面根静态库的名字test (去掉前缀和后缀)
上面这条命令生成可执行文件a.out
三、动态库的制作
(1)生成与地址无关的目标文件
gcc -fpic -c add.c
(2)生成共享库
gcc -shared add.o sub.o mul.o div.o -o libaa.so
库名为加了前缀和后缀的libaa.so
(3)动态库的使用
将头文件、test.c、动态库文件发给客户,
gcc test.c -L. -I. -laa