Ein kleines Problem mit dl_open()

Post Reply
Message
Author
robotron
Posts: 5
Joined: 01. Oct 2003 18:44
Location: Unterwirbach
Contact:

Ein kleines Problem mit dl_open()

#1 Post by robotron »

Hallo,

ich hab hier ein kleines Problem mit dl_open:
Ich hab ein Hauptprogramm, bezeichnenwir es als "mod_loader"
welches eine Reihe von Standard-Modulfunktionen beinhaltet.
Jetzt wollte ich bei meinen ersten Testlauf ein Modul laden,
nur leider ging es nicht. Dem Problem bin ich mit dl_error()
auf die Schliche gekommen, und zwar meldet er
"undefined symbol: co_module_set_stat". Was das heisst,
weiß ich. Eine Funktion die in dem Modul benötigt wird wurde
nicht gefunden. Das merkwürdige ist jedoch, die Funktion ist
in dem mod_loader Programm vorhanden.
Die Header's hab ichalle eingebunden.
Hier mal die Funktion die ein Modul läd:
void co_module_init (co_module_t *module)
{
co_module_stdfunc_t mod_init = NULL;

printf("Lade Modul \"%s\"\t\"%s\"
", module->file, module->name);
co_module_set_stat(module, MOD_DO_INIT); /* Die Funktion die nicht in dem Mod funktionier geht hier ohne Probleme. */
if (!(module->handle = dlopen(module->file, RTLD_NOW|RTLD_GLOBAL))) {
co_module_set_stat(module, MOD_ERR_DSO);
return;
}
if (!(mod_init = (co_module_stdfunc_t)dlsym(module->handle, "co_module_init"))) {
co_module_set_stat(module, MOD_ERR_INIT);
return;
}
(*mod_init)(module);
}

Für Tips wäre ich dankbar!
mfg, robo

Post Reply