|
From: | Marcus Müller |
Subject: | Re: [Discuss-gnuradio] Problems when trying to make out of tree modules |
Date: | Fri, 15 May 2015 14:49:10 +0200 |
User-agent: | K-9 Mail for Android |
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_ffC1Evwhere 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 Li2015-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 blockIn my code, I change it intoclass MY_MODULE_API my_block : virtual public blockThank you for your reply again.Best regards,Su Li2015-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.
-Peter-
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:
lib/my_block_impl.cclib/my_block_impl.hinclude/my_block.hgrc/my_block.xml
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 address@hidden https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
[Prev in Thread] | Current Thread | [Next in Thread] |