#include <dlfcn.h>
#include <iostream>
using TestFunction = int (*)();
int main(int argc, char** argv) {
if (argc < 2) {
std::cerr << "Library name not provided" << std::endl;
return 1;
}
char* name = argv[1];
void* handle = dlopen(name, RTLD_NOW);
if (handle == nullptr) {
std::cerr << dlerror() << std::endl;
return 1;
}
TestFunction get_sum =
reinterpret_cast<TestFunction>(dlsym(handle, "GetSum"));
if (get_sum == nullptr) {
std::cerr << "GetSum method not found" << std::endl;
return 1;
}
std::cout << get_sum() << std::endl;
return 0;
}