LINUX.ORG.RU

Помогите с dlopen


0

0

вопрос такой - я уже и не помню как там оно работает...

я делаю dlopen - OK
я делаю dlsym(so,«work») - но оно не находит там этот work()
внутри .so есть:
000000000000065c T _Z4workv

Подозреваю ключи компилятора и линковщика...

ах да, файл сам - cpp а не c, соотв компилирую
g++ -fPIC -o test1.o test1.cpp
g++ -fPIC -shared -o test1.so test1.o

★★★

extern «C» void work(void) {...}

vahvarh ★★★
() автор топика

в порядке добавления

The obsolete symbols _init() and _fini()
The linker recognizes special symbols _init and _fini. If a dynamic
library exports a routine named _init(), then that code is executed
after the loading, before dlopen() returns. If the dynamic library
exports a routine named _fini(), then that routine is called just
before the library is unloaded. In case you need to avoid linking
against the system startup files, this can be done by using the gcc(1)
-nostartfiles command-line option.

dimon555 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.