Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redhawksdr 错误:无法分配抽象类型为‘;前端信息输入_Redhawksdr - Fatal编程技术网

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的引用