1 #include <dlfcn.h> 2 #include <stdio.h> 3 4 #ifndef SO 5 #error No SO path defined 6 #endif 7 main()8int main() { 9 void* handle = dlopen(SO, RTLD_NOW); 10 if (!handle) { 11 printf("dlopen: %s\n", dlerror()); 12 return 1; 13 } 14 15 typedef void (*gofn_t)(); 16 gofn_t gofn = (gofn_t)dlsym(handle, "GoFn"); 17 const char* dlsym_error = dlerror(); 18 if (dlsym_error) { 19 printf("dlsym: %s\n", dlerror()); 20 dlclose(handle); 21 return 1; 22 } 23 24 gofn(); 25 26 if (dlclose(handle)) { 27 printf("dlclose: %s\n", dlerror()); 28 } 29 return 0; 30 } 31