Cat.c
int add(int a,int b){
return a + b;
}
生成so
gcc -fPIC -shared cat.c -o libcat.so
main.c
#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>
typedef int(* Add)(int, int)
int main(){
void * handler = dlopen(“./ libcat.so”,RTLD_LAZY); //延迟升级模式,返回句柄
Add add = NULL;
*(无效**)(&添加)=对dlsym(处理程序中, “添加”);
int result = add(2,5);
的printf( “%d \ n”个,结果);
返回0;
}
- 生成可执行文件main; ./ main
gcc -rdynamic -o main main.c -ldl
int add(int a,int b){
return a + b;
}
生成so
gcc -fPIC -shared cat.c -o libcat.so
main.c
#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>
typedef int(* Add)(int, int)
int main(){
void * handler = dlopen(“./ libcat.so”,RTLD_LAZY); //延迟升级模式,返回句柄
Add add = NULL;
*(无效**)(&添加)=对dlsym(处理程序中, “添加”);
int result = add(2,5);
的printf( “%d \ n”个,结果);
返回0;
}
- 生成可执行文件main; ./ main
gcc -rdynamic -o main main.c -ldl