/***********編譯時要鏈接 -l dl 庫************/
#include<stdlib.h> #include<stdio.h> #include<unistd.h> #include"person.h" #include<memory.h> #include<string.h> #include<dlfcn.h> int main(){ typedef int (*SELECT)(PERSON*); typedef void (*ADD)(int ,PERSON*); void *handle; if((handle=dlopen("./libper.so",RTLD_LAZY/*RTLD_NOW*/))==NULL){ printf("load so fail"); } ADD add=(ADD)dlsym(handle,"addperson"); dlclose(handle); }