动态链接库的使用
定义add.h和add.c两个文件
add.h
#ifndef ADD_H_
#define ADD_H_
int add(int,int);
#endif
add.c
#include "add.h"
int add(int a,int b)
{
return (a+b);
}
编译生成so文件
gcc -shared -fPIC add.c -o libadd.so
编写测试程序
#include <stdio.h>
#include "add.h"
int main(void)
{
printf("1+1=%d\n",add(1,1));
}
库文件一般放在/usr/lib中。默认情况下,在链接动态链接库的时候会在这个文件夹下寻找。
(/usr/include放的是头文件,可以把add.h放在这里或者程序存放的位置)
把libadd.so复制到/usr/lib中
sudo cp libadd.so /usr/lib/libadd.so
编译测试程序
gcc demo.c -o demo -ladd //-l后面是省略lib的链接库的名字