[Top][All Lists]

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

Re: [Discuss-gnuradio] Problems when trying to make out of tree modules

From: Su Li
Subject: Re: [Discuss-gnuradio] Problems when trying to make out of tree modules
Date: Fri, 15 May 2015 11:47:51 +0200

Hi all,

I found the problem. 

In my OOT block, I try to use mmse_fir_interpolator. Thus, in the my_block_impl.h file I use the following code to include the fir interpolator:

#include <gnuradio/filter/mmse_fir_interpolator_ff.h>

But when I run ctest for my block, I got the following error:

ImportError: /home/suli/gr-ctia802_15_4/build/lib/libgnuradio-ctia802_15_4.so: undefined symbol: _ZN2gr6filter24mmse_fir_interpolator_ffC1Ev

where ctia802_15_4 is my OOT module name. It seems that this fir filter is not correctly included. 

Anyone can tell me how to fix it? Thanks in advance.

Best regards,

Su Li

2015-05-14 14:33 GMT+02:00 Su Li <address@hidden>:
Hi Peter,

Thanks for your reply and suggestions.

I checked all the 4 files. I changed the original module and block names of build-in block into my module and block names. But unfortunately, the error still exists.

Could it be possibly because the build-in block, in my case "clock_recovery_mm_ff" block, has some special dependency which is included in the code of the module but not in the code of the block. 

The type of "clock_recovery_mm_ff" block is abnormal. It is just block, not gr::block nor gr::sync_block as mentioned in the OOT tutorial . Here is the code of declaration of this block in *.h file in "include" folder.

class DIGITAL_API clock_recovery_mm_ff : virtual public block

In my code, I change it into 

class MY_MODULE_API my_block : virtual public block

Thank you for your reply again. 

Best regards,

Su Li


2015-05-13 20:36 GMT+02:00 Peter Mathys <address@hidden>:
I've had a similar problem when I generated files for my own module using the gr_modtool and then copied some existing code by replacing the file(s) that gr_modtool generates. It turns out I had overlooked that the new "my_block" name needs to be changed in several places, like the namespace declaration, the #include compiler directive, and the conditional #ifndef INCLUDED ... directives. Once I updated that correctly the AttributeError got resolved.


On 5/13/2015 10:38 AM, Su Li wrote:
Dear All,

I am trying to make an out of tree module by following the tutorial on Gnu radio website. I can write simple blocks in C++, compile it and install it to it usable in Gnuradio company.

But for some complex block, I want to implement them based on the gnuradio build-in blocks, for example, clock_recovery_mm_ff. So I make a new block in my out-of-tree module and try to first "copy" the build-in block into my out-of-tree module.

I changed the following 4 files in my OOT module to match the corresponding files of the build-in block:


In each file, I changed all the "clock_recovery_mm_ff" into "my_block".

I can successfully make and install the block without error and warring. But when I try to run the grc graph, an error happens. 

AttributeError: 'module' object has no attribute 'my_block'.

Anyone can tell me what I should do to correct this error? Is there any other files I should change?

When I make simple blocks by myself, I only change this 4 files and it works.

Best regards,

Su Li

Discuss-gnuradio mailing list

Discuss-gnuradio mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]