7void open_so(
const std::string& so_name);
9void* load_symbol(
const std::string& so_name,
const std::string& symbol_name);
11template <
typename Module>
12std::shared_ptr<Module> load_module_from_so(
const std::string& so_name,
const std::string& func_name) {
13 auto func = (Module * (*)()) load_symbol(so_name, func_name);
14 if (func ==
nullptr) {
18 return std::shared_ptr<Module>(func());