一、生成静态链接库并应用
1.首先,创建一个c文件
root@ubuntu:~/c# cat fun.c
#include<stdio.h>
int fun(int a,int b)
{
return a*b;
}
root@ubuntu:~/c# cat fun.h
#ifndef _FUN_H_
#define _FUN_H_
int fun(int a,int b);
#endif
2.然后,将fun.c打包成静态库
①.gcc -c fun.c -o fun.o //生成二进制文件
②.ar -rc libfun.a fun.o //打包成静态库
3.调用,在main.c中调用
#include<stdio.h>
#include"fun.h"
int main(void)
{
int a =4;
int b =5;
printf("a*b=%d\n",fun(a,b));
return 0;
}
4.编译,gcc main.c -o main -I. -lfun -L.
5.成功引用。
二、生成动态链接库并引用
-shared 为链接库 让编译器知道是要编译一个共享库
-fPIC(Position Independent Code) 编译生成代码与位置无关
1.将上面的例子继续使用直接进行编译
gcc -c -fPIC -shared fun.c -o libfun.so
2.进行 调用
gcc main.c -o main -L. -lfun
3,调用成功。