如何解决错误:抽象类类型“ gr :: zeromq :: base_sink_impl”的无效新表达式
namespace gr {
namespace zeromq {
class base_impl : public virtual gr::sync_block
{
public:
base_impl(int type,size_t itemsize,size_t vlen,int timeout,bool pass_tags);
virtual ~base_impl();
protected:
zmq::context_t *d_context;
zmq::socket_t *d_socket;
size_t d_vsize;
int d_timeout ;
bool d_pass_tags ;
};
class base_sink_impl : public base_impl
{
public:
base_sink_impl(int type,char *address,bool pass_tags,int hwm);
protected:
int send_message(const void *in_buf,const int in_nitems,const uint64_t in_offset);
};
} // namespace zeromq
}
`main(){
gr::zeromq::base_sink_impl *d_zeromq;
d_zeromq = new gr::zeromq::base_sink_impl(ZMQ_PUSH,sizeof(float),1,"tcp://127.0.0.1:9098",100,false,-1);
return 0;
}`
你好! 运行此代码后,出现此错误:
错误:抽象类类型“ gr :: zeromq :: base_sink_impl”的无效新表达式 _sink_impl(ZMQ_PUSH,sizeof(float),1,“ tcp://127.0.0.1:9098”,100,false,-1);
^
我不确定如何解决此错误。我想我弄错了构造函数... 请,任何帮助将不胜感激。谢谢
解决方法
我发现了错误:超类gr :: sync_block具有一个称为work的虚拟方法。
我在base_impl类中声明了int work(int,gr_vector_const_void_star&,gr_vector_void_star&);
并进行了编译。
不幸的是,我无法运行该项目,因为似乎我必须配置CMakeList.txt之一才能识别zmq.hpp。似乎我还必须在swig目录中配置CMakeList.txt,因为我试图使用ZeroMQ进行GNURadio OOT块。
任何帮助,我都会很感激。
Pd:如果我解决了,我会在这里发布: GNU Radio OOT block : AttributeError: 'module' object has no attribute 'pthread' (using ZeroMQ sockets)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。