一、制作静态库
1.编写自己的.c文件,用于生成动态库,如add.c
2.编译写好的.c文件 注意:只编译不链接
gcc -c add.c -o add.o
3.用ar命令把add.o打包成静态函数库
ar cqs libmyadd.a add.o 注意:定义的函数库名字必须以lib开头
二、使用静态链接库
1.将制作好的静态函数库libmyadd.a复制到/usr/lib目录下
cp ./libmyadd.a /usr/lib
2.自己编写的应用程序,例如:test.c 且要编写关于静态库libmyadd.a的头文件,例:add.h,头文件中是静态库中的函数声明,,头文件放在test.c目录下
3.test.c中包含add.h
4.编译test.c
gcc -static test.c -lmyadd -o test 注意:动态库为libmyadd.a 使用静态库时用-l指明库的名字且名字要去掉lib 和.a
//add.c
int add(int a,int b)
{
return a+b;
}
//add.h
int add(int a,int b)
//test.c
#include<stdio.h>
#include"add.h"
void main()
{
int a=0;
a = add(7,3);
printf("a=%d",a);
}
三、制作动态库
1.使用上述add.c
2.编译add.c
gcc -c add.c -o add.o
3.生成动态库
gcc -shared -fPIC add add.o -o libadd.so
-fPIC使输出的对象模块是按照可重定位地址方式生成的。
-shared 指明产生动态库链接库
四、使用动态链接库
1.将制作好的动态函数库libadd.so复制到/usr/lib目录下
2.cp ./libadd.so /usr/lib
3.test.c文件中包含add.h头文件,add.h放在test.c目录下
4.编译test.c文件
gcc test.c -ladd -o add