2013-12-23 14 views
0

나는 ACE + TAO-6.2.3으로 OpenDDS 3.4.1을 빌드하려고합니다. DDS/INSTALL 문서 옵션 B를 따르는 동안 다음 빌드 오류가 발생합니다. 여기 OpenDDS 빌드 오류

는 ... 디렉토리 위치

/home/ender/OpenDDS-3.4.1/ 
|- ACE+TAO-6.2.3.tar 
|- ACE_wrappers 
|- DDS 
`- OpenDDS-3.4.1.tar 

환경 변수 ...

ACE_ROOT=/home/ender/OpenDDS-3.4.1/ACE_wrappers 
TAO_ROOT=/home/ender/OpenDDS-3.4.1/ACE_wrappers/TAO 
DDS_ROOT=/home/ender/OpenDDS-3.4.1/DDS 
MPC_ROOT=/home/ender/OpenDDS-3.4.1/ACE_wrappers/MPC 
CIAO_ROOT=/home/ender/OpenDDS-3.4.1/ACE_wrappers/CIAO 

그리고 이것은 내가 과거를 얻으려고 빌드 오류입니다.

g++ -fvisibility=hidden -fvisibility-inlines-hidden -pthread -fno-strict-aliasing -Wall -W -Wpointer-arith -pipe -D_GNU_SOURCE -DNDEBUG -I/home/ender/OpenDDS-3.4.1/ACE_wrappers -I/home/ender/OpenDDS-3.4.1/DDS -DACE_NDEBUG -D__ACE_INLINE__ -I/home/ender/OpenDDS-3.4.1/ACE_wrappers -I/home/ender/OpenDDS-3.4.1/ACE_wrappers/TAO -I../../../.. -DOPENDDS_TCP_BUILD_DLL -c -fPIC -o .shobj/TcpReceiveStrategy.o TcpReceiveStrategy.cpp 
In file included from TcpReceiveStrategy.h:14:0, 
      from TcpReceiveStrategy.cpp:10: 
/home/ender/OpenDDS-3.4.1/DDS/dds/DCPS/transport/framework/TransportReceiveStrategy_T.h:61:33: error: 'ACE_INET_Addr' has not been declared 
/home/ender/OpenDDS-3.4.1/DDS/dds/DCPS/transport/framework/TransportReceiveStrategy_T.h:72:37: error: 'ACE_INET_Addr' does not name a type 
/home/ender/OpenDDS-3.4.1/DDS/dds/DCPS/transport/framework/TransportReceiveStrategy_T.h:72:52: error: ISO C++ forbids declaration of 'remote_address' with no type [-fpermissive] 
make[1]: *** [.shobj/TcpReceiveStrategy.o] Error 1 
make[1]: Leaving directory `/home/ender/OpenDDS-3.4.1/DDS/dds/DCPS/transport/tcp' 
make: *** [OpenDDS_Tcp] Error 2 

이전에 제작했는데 효과가 있었지만 왜 이번에는 문제가 있는지 알 수 없습니다. 어떤 아이디어?

답변

1

ACE에서 일부 리팩터링이 발생하여 OpenDDS 3.4.1이 ACE/TAO x.2.3으로 컴파일되지 않습니다. OpenDSS의 커밋 5998에서와 같이 dds/DCPS/transport/framework/TransportReceiveStrategy_T.h에 ace/INET_Addr.h를 수동으로 추가해야합니다.

+0

다시 큰 감사드립니다. – Ender