On Thu, Sep 13, 2007 at 03:10:17PM -0400, Dawei Shen wrote:
> Hi, Eric
> 
> I didn't put the nested class in the .i file, only the upper-level block
> class, which produced the error (adding it doesn't solve it either). Maybe I
> just shouldn't nest C++ classes when I use SWIG? Thank you.
> 
> Dawei

OK, then I don't think this is a swig problem.

Do you have a virtual destructor defined for your class?
Is it inline, or in the .cc file?  It should be in the .cc file.

Eric







> On 9/13/07, Eric Blossom <[EMAIL PROTECTED]> wrote:
> >
> > On Thu, Sep 13, 2007 at 02:54:16PM -0400, Dawei Shen wrote:
> > > Hey, Guys
> > >
> > > I encountered a programming problem when I tried to build a new block. I
> > > defined a subclass inside my block class, which looks like:
> > >
> > > class my_block : gr_block{
> > >   class my_subclass {
> > >      sub_class details
> > >   }
> > > }
> > >
> > > Well, this my_subclass is part of my implementation, all its member
> > > functions are inline functions. Everything got compiled and installed
> > well.
> > > However, when I used my block in my python script, I met some error
> > like:
> > >
> > > import _howto
> > > ImportError: /usr/local/lib/python2.5/site-packages/gnuradio/_howto.so:
> > > undefined symbol: _ZN22howto_my_block10my_subclass1hE
> > >
> > > Could anybody help me with this problem? Should I do something with my
> > .i
> > > file or makefile.am file?
> > >
> > > Thank you in advance.
> > >
> > > Dawei
> >
> >
> > SWIG doesn't deal with nested C++ classes.
> > This is a known limitation, and apparently hard to fix.
> >
> > In your case, I doubt that the python code needs to know anything
> > about the implementation details, including the nested class.
> > I suggest trying to remove the nested class from the .i file.
> >
> > Eric
> >


_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to