Linux下的.so是基于Linux下的动态链接,其功能和作用类似与windows下.dll文件。
第一个gcc编译的so及调用示例:
plus.c代码:
#include<link.h>
int plus(int a,int b)
{ int x=a*a+b*b;
return x;
}
link.h代码:
#include<stdio.h>
int plus();
use.c代码:
#include<stdio.h>
#include<dlfcn.h>
int main()
{
int (*myplus)(int a,int b);
void *handle;
handle=dlopen("./libplus.so",RTLD_LAZY);
myplus=dlsym(handle,"plus");
int result=myplus(1,2);
dlclose(handle);
printf("%d\n",result);
}
编译:gcc -shared -o libplus.so plus.c
gcc -ldl -o use use.c
./use
————————————————————————————————————————————————————————————————