Защо IDL е непълен?

Използвам OpenDDS 3.4.1 на Linux и се опитвам да компилирам ръчно IDL, защото вече имам система за изграждане на проекта и просто бих искал да генерирам необходимите файлове и да интегрирам. Ето един тестов IDL, който използвам.

#include "orbsvcs/TimeBase.idl"

module StockQuoter {
#pragma DCPS_DATA_TYPE "StockQuoter::Quote"
#pragma DCPS_DATA_KEY "StockQuoter::Quote ticker"

    struct Quote {
        string ticker;
        string exchange;
        string full_name;
        double value;
        TimeBase::TimeT timestamp;
    };
};

След това компилирайте IDL, както следва:

$ opendds_idl ./StockQuoter.idl
processing ./StockQuoter.idl

$ tao_idl -I$DDS_ROOT/DDS -I$TAO_ROOT/orbsvcs ./StockQuoter.idl
processing ./StockQuoter.idl

Но след като стигна до използването на tao_idl върху генерирания IDL, получавам следното:

$tao_idl -I$DDS_ROOT/DDS -I$TAO_ROOT/orbsvcs ./StockQuoterTypeSupport.idl

.../ACE_wrappers/bin/tao_idl: "./StockQuoterTypeSupport.idl", line 21: module must contain at least one declaration: ::StockQuoter
.../ACE_wrappers/bin/tao_idl: "./StockQuoterTypeSupport.idl", line 21: module must contain at least one declaration: ::StockQuoter
.../ACE_wrappers/bin/tao_idl: "./StockQuoterTypeSupport.idl", line 21: module must contain at least one declaration: ::StockQuoter
.../ACE_wrappers/bin/tao_idl: "./StockQuoterTypeSupport.idl", line 21: module must contain at least one declaration: ::StockQuoter

Разбира се, резултатът означава, че не мога да регистрирам поддръжка на типове в моя pub/subs, защото необходимите обекти липсват, което мога да потвърдя, като разгледам файла StockQuoterTypeSupport.idl. Погледнах глава 8 от ръководството за разработчици на OpenDDS за параметри на opendds_idl, но изглежда нищо не работи. Някакви идеи?

Редактиране:
Ето генерирания IDL StockQuoterTypeSupport.idl.

/* Generated by .../DDS/bin/opendds_idl version 3.4.1 (ACE version 5.6a_p14)  
   running on input file ./StockQuoter.idl*/
#ifndef OPENDDS_IDL_GENERATED_STOCKQUOTERTYPESUPPORT_IDL_X54N2R
#define OPENDDS_IDL_GENERATED_STOCKQUOTERTYPESUPPORT_IDL_X54N2R
#include "./StockQuoter.idl"

#include "dds/DdsDcpsInfrastructure.idl"
#include "dds/DdsDcpsPublication.idl"
#include "dds/DdsDcpsSubscriptionExt.idl"
#include "dds/DdsDcpsTopic.idl"
#include "dds/DdsDcpsTypeSupportExt.idl"

/* Begin MODULE: StockQuoter */

/* Begin STRUCT: Quote */

module StockQuoter {
};

/* End STRUCT: Quote */

/* End MODULE: StockQuoter */
#endif /* OPENDDS_IDL_GENERATED_STOCKQUOTERTYPESUPPORT_IDL_X54N2R */

person Ender    schedule 13.12.2013    source източник
comment
Това, което се генерира в StockQuoterTypeSupport.idl, трябва да съдържа интерфейсите QuoteTypeSupport, QuoteDataWriter и QuoteDataReader.   -  person Johnny Willemsen    schedule 13.12.2013
comment
Това са обектите, които ми трябват, но по някаква причина не се появяват. Публикувах генерирания IDL. Пуснах го и в подробен режим и не видях нищо необичайно.   -  person Ender    schedule 13.12.2013
comment
Изглежда, че има проблем с компилатора opendds_idl. Можете ли да опитате да прекомпилирате OpenDDS с помощта на ACE/TAO x.2.3, който можете да получите от download.dre.vanderbilt.edu. Имам тази комбинация в моята система и тя работи без проблем.   -  person Johnny Willemsen    schedule 13.12.2013
comment
И аз се чудех за това. Ще се върна към него в средата на следващата седмица и ще ви уведомя как е минало, в случай че има отговор.   -  person Ender    schedule 14.12.2013
comment
@JohnnyWillemsen Thnx, нещо не е изградено както трябва, сега работи. Ако искате да направите това отговор, ще го отбележа така.   -  person Ender    schedule 20.12.2013
comment
да, моля, маркирайте го като отговор   -  person Johnny Willemsen    schedule 20.12.2013
comment
@JohnnyWillemsen Освен ако не пропускам нещо, отговорете като отговор, а не като коментар, и тогава ще го маркирам като такъв.   -  person Ender    schedule 21.12.2013


Отговори (1)


Изглежда, че има проблем с компилатора opendds_idl. Можете ли да опитате да прекомпилирате OpenDDS с помощта на ACE/TAO x.2.3, който можете да получите от download.dre.vanderbilt.edu. Имам тази комбинация в моята система и тя работи без проблем.

person Johnny Willemsen    schedule 22.12.2013
comment
Това трябва да бъде разрешено с изданието OpenDDS 3.5 - person Johnny Willemsen; 09.02.2014