linux-C直接调用SO动态库的函数_C/C++_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > C/C++ > linux-C直接调用SO动态库的函数

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

 2010/9/19 23:30:10  deepfuture  http://deepfuture.javaeye.com  我要评论(0)
  • 摘要:#include<stdio.h>#include<dlfcn.h>intmain(void){int(*myadd)(inta,intb);//fuctionpointervoid*handle;handle=dlopen("./libmyadd.so",RTLD_LAZY);//openlibfilemyadd=dlsym(handle,"output");//calldlsymfunctionintresult=myadd(1,2);dlclose(handle)
  • 标签:linux C直接调用SO动态库 函数
#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

发表评论
用户名: 匿名