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
",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的链接库的名字

运行结果

原文地址:https://www.cnblogs.com/runnyu/p/4666315.html