linux-C直接调用SO动态库和生成SO动态库的函数

本文展示了一个使用 C 语言编写的程序如何通过动态链接库(DLL)来调用一个简单的加法函数。该示例包括了库文件的创建、加载及函数的调用过程,并演示了如何正确地关闭动态库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <stdio.h>
#include <dlfcn.h>

int main(void){
   int (*myadd)(int a,int b);//fuction pointer
   void *handle;
   
   handle=dlopen("./libmyadd.so",RTLD_LAZY);//open lib file
   myadd=dlsym(handle,"output");//call dlsym function
   

   int result=myadd(1,2);
   dlclose(handle);
   printf("%d\n",result);  
}

 以上为调用程序test8.c,以下为库程序test7.c

int output(int a,int b){
   int x=a+b;
   return x;
}

 knoppix@Microknoppix:/mnt-system/deepfuture$ gcc -shared -o libmyadd.so test7.c
knoppix@Microknoppix:/mnt-system/deepfuture$ gcc -ldl -o test8 test8.c
knoppix@Microknoppix:/mnt-system/deepfuture$ ./test8
3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值