Ошибка сборки OpenDDS

Я пытаюсь собрать OpenDDS 3.4.1 с ACE+TAO-6.2.3. Следуя документам DDS/INSTALL, вариант B, я сталкиваюсь со следующими ошибками сборки.

Вот расположение каталога...

/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

Я построил это раньше, и это сработало, но не понимаю, почему на этот раз у меня проблемы. Любые идеи?


person Ender    schedule 23.12.2013    source источник


Ответы (1)


В ACE был произведен некоторый рефакторинг, из-за которого OpenDDS 3.4.1 не компилировался с ACE/TAO x.2.3. Вы должны вручную добавить включение ace/INET_Addr.h в dds/DCPS/transport/framework/TransportReceiveStrategy_T.h, как это сделано в фиксации 5998 OpenDDS.

person Johnny Willemsen    schedule 24.12.2013