A programming question about building a block

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

On Thu, Sep 13, 2007 at 02:54:16PM -0400, Dawei Shen wrote:

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

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

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

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs