Glib::module problem in gtkmm 2.6



hi,
i am working in environment Debian, and i do a program which loads
modules.
It was working with gtkmm 2.4.
Today i tried to use gtkmm 2.6 and now i have a problem.


This is my code :

Glib::Module * NewModule = new Glib::Module("Plugin/libcontact");
cout << "last errror" << NewModule->get_last_error () << endl;
if (NewModule->gobj() != NULL )
                        {
                                cout <<  "New module found." << endl;
                                cout << "getting symbol ... " ;
                                bool found = NewModule->get_symbol
("get_module", func);
                                if (found)
                                {    ....

I have found a error with Glib::Module on the web :
Version details: Appears in earlier version of Glibmm as well
Distribution/Version: This bug affects all systems using dlopen()

The enum Glib::ModuleFlags does not have a MODULE_BIND_LOCAL entry that
coresponds with glib's G_MODULE_BIND_LOCAL flag.  Without it modules are
always
loaded RTLD_GLOBAL.  Work around is to use code like the following:

Glib::Module module(moduleName, Glib::ModuleFlags(2));

So i tried this
Glib::Module * NewModule = new
Glib::Module("Plugin/libcontact",Glib::ModuleFlags(2));

I have this error :
last errrorPlugin/libcontact.so: undefined symbol:
_ZN7IPlugin20mainViewFuncTree_ptrE

I tried to understand with a debugger (DDD), and I found an odd call:
0x080734f8 <Plugs::InitPlugin()+514>:   movl   $0x8,(%esp)
0x080734ff <Plugs::InitPlugin()+521>:   call   0x8056ec0 <non-virtual
thunk to Gtk::Entry::~Entry()+64>

This call give this :
No function contains specified address.

And all were working before i changed the librairies.

Is it a problem with gtkmm 2.6 ?

Thanks

Remy



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]