2013-12-23 258 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进行编译。您必须手动添加一个包含ace/INET_Addr.h到dds/DCPS/transport/framework/TransportReceiveStrategy_T.h,如OpenDDS的提交5998中所做的那样。

+0

非常感谢。 – Ender