URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5978
[ Назад ]

Исходное сообщение
"extern variable in shared library - возможно ли?"

Отправлено Dip , 02-Дек-06 17:50 
Можно ли объявить extern переменную в динамически связываемой библиотеке? Т.е. есть программа, в ней объявлена глобальная переменная, она же объявлена как extern в динамической библиотеке, которая загружается нашей программой как плагин. У меня не получилось, поэтому спрашиваю - это вообще возможно? Если да, ткните носом где почитать.
Спасибо!

P.S. У меня при загрузке плагина ldopen() говорит на мою переменную undefined symbol.


Содержание

Сообщения в этом обсуждении
"extern variable in shared library - возможно ли?"
Отправлено perece , 04-Дек-06 19:25 
>Можно ли объявить extern переменную в динамически связываемой библиотеке? Т.е. есть программа,
>в ней объявлена глобальная переменная, она же объявлена как extern в
>динамической библиотеке, которая загружается нашей программой как плагин. У меня не
>получилось, поэтому спрашиваю - это вообще возможно? Если да, ткните носом
>где почитать.
>Спасибо!
>
>P.S. У меня при загрузке плагина ldopen() говорит на мою переменную undefined
>symbol.

правильно. она же об'явлена в головном модуле, а не в плагине. при чем тут вообще dlopen()?
при запуске ф-ии планина (ее как раз получаем через dlopen/dlsym) ф-ия лезет к переменной "напрямую", и по идее должна добираться (динамический линкер при открытии библиотеки dlopen'ом сам все сделает)

переменная должна быть в либе именно extern (т.е. "U") а не common и не weak

\^P^/