Linux动态链接库的使用
定义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 <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的链接库的名字
运行结果