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

本文详细介绍了在Linux环境下如何生成、编译和调用.so动态库。通过实例展示了如何使用gcc创建动态库libplus.so,以及如何在use.c中使用dlopen和dlsym动态加载并调用该库。同时,文章提到了makefile在生成动态库和嵌套调用中的应用,包括解决库文件路径问题和嵌套调用makefile的技巧。
最低0.47元/天 解锁文章
865

被折叠的 条评论
为什么被折叠?



