#include <dlfcn.h>
#include <stdio.h>

int
main(int argc, char *argv[])
{
  char* (*fptr)(char *);
  void *handle = dlopen("/usr/local/lib/libgcrypt.dylib", RTLD_LAZY | RTLD_LOCAL);
  if (handle == NULL) {
    printf("ERROR: %s\n", dlerror());
  } else {
    *(void **)(&fptr) = dlsym(handle, argv[1]);
    if (fptr == NULL) {
       printf("SYMBOL NOT FOUND: %s : %s\n", argv[1], dlerror());
    } else {
       printf("SYMBOL FOUND: %s %s\n", argv[1], (*fptr)(NULL));
    }
  }
  return 0;
}
