定义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
编写测试程序
demo.c
#include#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的链接库的名字
运行结果