网上关于gnuradio创建C++模块的例子有很多,基本就是下面几个步骤
1、首先git上克隆下gnuradio的源码,并且能编译通过,相信看到这里的应该已经完成了
2、在gnuradio目录下用命令生成模块
gr_modtool newmod myblock
然后进入生成的文件夹gr-myblock
在我们的模块中添加源文件gr_modtool add mytest
之后回车生成mytest_impl.c和mytest_impl.h文件
3、修改源文件
mytest_impl.c中
mytest_impl::mytest_impl()
: gr::sync_block("mytest",
gr::io_signature::make(1, 1, sizeof(gr_complex)),
gr::io_signature::make(0, 0, 0))
gr::io_signature::make(1, 1, sizeof(gr_complex)),设置输入口数量
gr::io_signature::make(0, 0, 0))设置输出口数量
4、之后我们使用gnuradio的FFT功能
在 mytest_impl构造函数中加入
d_fft = new fft::fft_complex(1024, true);
mytest_impl头文件中加入
#include <gnuradio/fft/fft.h>
私有变量
fft::fft_complex *d_fft;
5、最关键的一步
修改lib文件夹下的CMakeLists.txt
target_link_libraries(gnuradio-apptestuhd gnuradio-fft ${Boost_LIBRARIES} ${GNURADIO_ALL_LIBRARIES})
连接库中加入gnuradio-fft
6、最后在mkdir build;cd build;cmake ../;make;sudo make install
即可