Вообщем есть необходимость подключать к программе модули (плагины). Посмотрел доку на opennet'е и сделал значится следующий модуль, libpbmysq.so: void test() { } собрал его как надо, с -shared и -fPIC. Появилась требуемая сошка. Сама же сошка подключается к главной проге через следующий метод класса: //Struct of db module struct moddb{ void (*test)(); void *handle; char *modpath; }; bool PBModDB::registerModDB(char *dbtype) { char *error, *cwd; cwd = new char[PATH_LENGTH]; getcwd(cwd,PATH_LENGTH); strcat(cwd,"/"); db->modpath = new char[strlen(cwd)+strlen(PB_MOD_DB_PREFIX)+strlen(dbtype)+strlen(".so") ]; db->modpath = strcpy(db->modpath,cwd); db->modpath = strcat(db->modpath,PB_MOD_DB_PREFIX); db->modpath = strcat(db->modpath,dbtype); db->modpath = strcat(db->modpath,".so"); delete cwd; if(open(db->modpath,O_RDONLY) < 0){ PBWriteToLog("Can't open module for current database type\n"); return false; } db->handle = dlopen(db->modpath, RTLD_LAZY); if (!db->handle) { fprintf (stderr, "%s\n", dlerror()); return false; } *(void **) (&db->test) = dlsym(db->handle, "test"); cout << "PREPARE FUNC!!\n"; if ((error = dlerror()) != NULL) { fprintf (stderr, "%s\n", error); cout << "ERROR2!!\n"; return false; } db->test(); return true; } В db->modpath лежит путь к либе, он на 100000 процентов верен. Но вот при запуске проги, при получении адреса функции возникает такое: PREPARE FUNC!! /Путь_к_проекту/debug/src/pbmodb/.libs/libpbmysql.so: undefined symbol: test ERROR2!! Что не так, почему функция не видна?! Всё это пишется в дженте (так сказать uptodate), гцц 3.4.5. Заранее спасибо!!!
Ответ на:
комментарий
от cyclon
Ответ на:
комментарий
от cyclon
Ответ на:
комментарий
от erDiZz
Ответ на:
комментарий
от watashiwa_daredeska
Ответ на:
комментарий
от watashiwa_daredeska
Ответ на:
комментарий
от cyclon
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Так всётаки как написать so'шку??? (2005)
- Форум Segmentation fault (2009)
- Форум socket error (2009)
- Форум создание файла(mkfifo)+Qt (2012)
- Форум глюк с libpcap (2013)
- Форум [hook][mipsel]падает при вызове оригинального метода (2010)
- Форум Проблема с деструктором класса (2002)
- Форум Динамическое распределение памяти (2014)
- Форум wayland server имплементация, создание глобальных объектов (2021)
- Форум Неправильное выделение памяти (2006)