2013-12-13 4 views
0

코드 생성시 설정오류 : 사용 추상 형식의 객체를 할당 할 수 없습니다 'FRONTEND_RFInfo_In_i

FRONTEND 디지털 튜너에 필요한 다음 포트를 추가하고 코드를 재생성하면 다음 오류 메시지가 발생합니다.

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

오류 메시지 (문제 창) :

cannot allocate an object of abstract type ‘FRONTEND_RFInfo_In_i’ TestFrontEndDevice_base.cpp /TestFrontEndDevice/cpp line 50 C/C++ Problem

오류 메시지 (콘솔) :

port_impl.h:56: note: because the following virtual functions are pure within ‘FRONTEND_RFInfo_In_i’:

/usr/local/redhawk/core/include/redhawk/FRONTEND/RFInfo.h:323: note: virtual void FRONTEND::_impl_RFInfo::rf_flow_id(const char*)

/usr/local/redhawk/core/include/redhawk/FRONTEND/RFInfo.h:325: note: virtual void FRONTEND::_impl_RFInfo::rfinfo_pkt(const FRONTEND::RFInfoPkt&)

make: * [TestFrontEndDevice-TestFrontEndDevice_base.o] Error 1

답변

1

는 버그가 나타납니다 코드 생성 RFInfo 클래스. port_impl.h 파일의 생성 된 코드의 서명을 위의 "구현되지 않은"코드의 서명과 비교하면 port_impl.h의 rf_flow_id 함수에 const 키워드가 없음을 알 수 있습니다. rfinfo_pkt 메소드에 대해서도 마찬가지입니다. 함수 선언에 const 키워드와 앰퍼샌드가 없습니다.

이 문제를 해결하려면 port_impl.h 파일의 선언과 port_impl.cpp 파일의 정의에있는 적절한 위치에 const 키워드와 앰퍼샌드를 추가하기 만하면됩니다.

1

이 문제는 1.9.1 릴리스에서 수정 된 알려진 문제입니다.

에있는 RFInfo 포트 함수 서명의 결과는 생성 된 port_impl. * 파일이 순수 가상 인 우연한 기본 클래스 인 의 파일과 다릅니다. 아래 그림과 같이 코드에서 문제를 해결하려면, 당신은 rfinfo_pkt하는 rf_flow_id하는 "CONST"및 "CONST"모두와 "&"를 추가해야합니다 : port_impl.h에서

:

port_impl.cpp에서
-  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); 

:

-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) 
+0

이 내가 다음 링크 오류로 불행하게도 나는 여전히 빌드를 얻을 수없는 현재의 오류를 해결합니다. /usr/local/redhawk/core/lib/libfrontendInterfaces.so : BULKIO :: PrecisionUTCTime :: operator << = (cdrStream &) '에 대한 정의되지 않은 참조' /usr/local/redhawk/core/lib/libfrontendInterfaces.so : undefined BULKIO :: PrecisionUTCTime :: operator >> = (cdrStream &) const '에 대한 참조' –

+0

답변 [여기] (http://stackoverflow.com/questions/20621726/linker-error-when-creating-1-9-frontend- device-create-ide-using-default) – jkb

관련 문제