Господа у меня проблема при подключении библиотеки при помощи dlsym:
void *handle = dlopen ( "my.so", RTLD_LAZY);
int (*fun_p)(int) = dlsym( handle, "some_function");
int a;
fun_p(a);
dlclose(handle);
Точнее проблема не при работе, а во время компиляции. Выдает следующее:
$ g++ -o out some.cpp -ldl
some.cpp: Im function 'int main()':
some.cpp:17: error: invalid conversion from 'void*' to 'int(*)(int)'
Пробовал вызывать фунцию void some_function() т.е. ничего не передается и нечего
не возвращается та же история:
void *handle = dlopen ( "my.so", RTLD_LAZY);
void (*fun_p)() = dlsym( handle, "some_function");
fun_p();
dlclose(handle);
$ g++ -o out some.cpp -ldl
some.cpp: Im function 'int main()':
some.cpp:17: error: invalid conversion from 'void*' to 'void(*)()'
Библиотека компилируется нормально, проблема возникает при компиляции программы. Компилятор gcc-3.3.4