Redhawksdr 错误:无法分配抽象类型为‘;前端信息输入
使用:Redhawksdr 错误:无法分配抽象类型为‘;前端信息输入,redhawksdr,Redhawksdr,使用: 红鹰1.9/CCENOS 6.4(32位)/C++实现< /P> 创建新的前端::调谐器设备 在代码生成中使用默认设置 当我添加前端数字调谐器所需的以下端口并重新生成代码时,会出现以下错误消息 <ports> <provides repid="IDL:FRONTEND/DigitalTuner:1.0" providesname="DigitalTuner"/> <provides repid="IDL:FRONTEND/RFInfo:1.0" pr
红鹰1.9/CCENOS 6.4(32位)/C++实现< /P> 创建新的前端::调谐器设备
在代码生成中使用默认设置 当我添加前端数字调谐器所需的以下端口并重新生成代码时,会出现以下错误消息<ports>
<provides repid="IDL:FRONTEND/DigitalTuner:1.0" providesname="DigitalTuner"/>
<provides repid="IDL:FRONTEND/RFInfo:1.0" providesname="RFInfo"/>
</ports>
错误消息(问题窗口):
无法分配抽象类型的对象
“FRONTEND\u RFInfo\u In_i”TestFrontEndDevice\u base.cpp/TestFrontEndDevice/cpp第50行C/C++问题
错误消息(控制台):
port_impl.h:56:注意:因为以下虚拟函数
纯在“前端信息”中:
/usr/local/redhawk/core/include/redhawk/FRONTEND/RFInfo.h:323:注:
虚拟无效前端::_impl_RFInfo::rf_flow_id(const char*)
/usr/local/redhawk/core/include/redhawk/FRONTEND/RFInfo.h:325:注:
虚拟void前端::_impl_RFInfo::RFInfo_pkt(const
前端::RFInfoPkt&)
make:[TestFrontEndDevice-TestFrontEndDevice_base.o]错误1
RFInfo类的代码生成中似乎存在错误。如果将port_impl.h文件中生成的代码的签名与上面“未实现”的签名进行比较,您会注意到,对于port_impl.h中的rf_flow_id函数,没有const关键字。rfinfo_pkt方法也是如此。函数声明中缺少const关键字和符号
要解决此问题,只需在port_impl.h文件中的声明和port_impl.cpp文件中的定义的适当位置添加常量关键字和符号即可。这是1.9.1版本中已解决的已知问题 问题是中的RFInfo端口函数签名导致的 生成的端口_impl.*文件与 父/基类,也恰好是纯虚拟的。修理 在您的代码中,您需要将“const”添加到rf_flow_id中,以及两者 rfinfo_pkt的“const”和“&”,如下所示: 在端口_impl.h中:
- void rf_flow_id( char* data);
+ void rf_flow_id( const char* data);
- void rfinfo_pkt( FRONTEND::RFInfoPkt data);
+ void rfinfo_pkt( const FRONTEND::RFInfoPkt& data);
在端口_impl.cpp中:
-void FRONTEND_RFInfo_In_i::rf_flow_id( char* data)
+void FRONTEND_RFInfo_In_i::rf_flow_id( const char* data)
-void FRONTEND_RFInfo_In_i::rfinfo_pkt( FRONTEND::RFInfoPkt data)
+void FRONTEND_RFInfo_In_i::rfinfo_pkt( const FRONTEND::RFInfoPkt& data)
这修复了当前的错误,不幸的是,我仍然无法得到一个构建,因为我得到了以下链接错误/usr/local/redhawk/core/lib/libfrontendInterfaces.so:未定义对
BULKIO::PrecisionUTCTime::operator的引用