gcc中的-ldl
#include <stdio.h>
#include <dlfcn.h>
int main() {
void *handle;
int (*add)(int, int);
char *error;
handle = dlopen("./libadd.so", RTLD_LAZY);
if (!handle) {
fprintf(stderr, "%s\n", dlerror());
return 1;
}
add = dlsym(handle, "add");
if ((error = dlerror())!= NULL) {
fprintf(stderr, "%s\n", error);
return 1;
}
printf("2 + 3 = %d\n", add(2, 3));
dlclose(handle);
return 0;
}Last updated