dynamic linkage, mixed emotions
i’ve been quite busy recently trying to learn dynamic linkage and so far, things are going quite smoothly. last night, i breathed my first breath of accomplishment when i was finally able to make notation load a module depending on user input. my first useful implementation apart from the usual “hello world”.
my breath of accomplishment was shortlived. for i found these out later. eikke’s blog and this. glib’s gmodule documentation page.
neat! just neat! i guess i have to patch this up now.
static void load_module(const gchar *module_name)
{
void *module;
void (*module_function)();
module = dlopen(module_name, RTLD_LAZY);
if (!module) {
g_printf(\"dlerror: %s\n\", dlerror());
return ;
}
module_function = dlsym(module, \"module_init\");
if (!module_function) {
g_printf(\"cannot find entry: module_init()\n\");
return;
}
(*module_function)();
dlclose(module);
return ;
}
