错误:无法分配抽象类型'FRONTEND_RFInfo_In_i的对象

时间:2013-12-13 18:31:01

标签: redhawksdr

使用:

Redhawk 1.9 / CentOS 6.4(32位)/ C ++实现

创建新的FRONTEND :: TUNER设备

使用代码生成的默认设置

当我添加FRONTEND Digital Tuner所需的以下端口并重新生成代码时,会出现以下错误消息。

<ports>
  <provides repid="IDL:FRONTEND/DigitalTuner:1.0" providesname="DigitalTuner"/>
  <provides repid="IDL:FRONTEND/RFInfo:1.0" providesname="RFInfo"/>
</ports>

错误消息(问题窗口):

  

无法分配抽象类型的对象   'FRONTEND_RFInfo_In_i'TestFrontEndDevice_base.cpp / TestFrontEndDevice / cpp line 50 C / C ++问题

错误消息(控制台):

  

port_impl.h:56:注意:因为以下虚函数是   纯粹在'FRONTEND_RFInfo_In_i'中:

     

/usr/local/redhawk/core/include/redhawk/FRONTEND/RFInfo.h:323:注意:   virtual void FRONTEND :: _ impl_RFInfo :: rf_flow_id(const char *)

     

/usr/local/redhawk/core/include/redhawk/FRONTEND/RFInfo.h:325:注意:   virtual void FRONTEND :: _ impl_RFInfo :: rfinfo_pkt(const   FRONTEND :: RFInfoPkt&安培;)

     

make: * [TestFrontEndDevice-TestFrontEndDevice_base.o]错误1

1 个答案:

答案 0 :(得分:1)

RFInfo类的代码生成中似乎存在错误。如果将port_impl.h文件中生成的代码的签名与未实现的&#34;未实现的&#34;的签名进行比较。您可以注意到,对于port_impl.h中的rf_flow_id函数,没有const关键字。关于rfinfo_pkt方法也是如此。它缺少const关键字和函数声明中的&符号。

要解决此问题,只需在port_impl.h文件中的声明和port_impl.cpp文件中的定义中的适当位置添加const关键字和&符号。