glib module 로드 오류...ㅜㅜ

jic5760의 이미지

glib로 module을 로드하려고 하면 오류가 나고 안됩니다...

로드 소스입니다.

module = g_module_open(path, G_MODULE_BIND_LOCAL); //path:so library 경로
 
if (!g_module_symbol(module, "ToolsOnLoad", (gpointer *) &onload)) {
 g_warning("Lookup of plugin entry point for '%s' failed. (path:%s)\n\t%s\n", entry, path, g_module_error());
 goto next;
}

이렇게 하면 entry : so파일이름
error 내용은 Unable to resolve symbol 이 나옵니다.

해당 so파일을 objdump로 보면
00002bff g F .text 00000145 ToolsOnLoad
으로 ToolsOnLoad 가 있습니다..

왜 그럴까요?

jic5760의 이미지

gmoduleconf.h 에서 G_MODULE_NEED_USCORE 가 defined되어서 안되었네요..
이게 defined되어있으면 심볼로 모듈을 로드할때 앞에 '_' 을 붙히더라구요.