[omniORB] ir.idl?

Sai-Lai Lo S.Lo@uk.research.att.com
24 Apr 2001 17:37:16 +0100


Where did you put the -DENABLE_CLIENT_IR_SUPPORT?

By the way, your version of CosQuery.idl does not seem to be the same as
the one in <top>/idl/COS/CosQuery.idl. In that version there is no

typedef sequence<QLType> QL_Sequence;

as your printout indicate.



>>>>> Mike Ladwig writes:

> Thanks for the reply.
> That solved part of the problem; now I understand what the EXTERNAL_GUARD
> stuff is all about.  Unfortunately, now I have other problems.  I've
> appended the error messages, but the gist is that none of the types and
> skeletons associated with InterfaceDef (what I'm really after) appear to be
> defined.  The first error on the CosQuery.hh line:

> typedef CORBA::_sk_InterfaceDef _sk_QLType;

> The second (line 218 is)

> class QL_Sequence : public _CORBA_Unbounded_Sequence_ObjRef<
> CORBA::_objref_InterfaceDef, _CORBA_ObjRef_Element<
> CORBA::_objref_InterfaceDef, CORBA::InterfaceDef_Helper> , QLType_Helper> {

> and so on.

> Thanks,
> mike.


> c++ -c -D_REENTRANT -DIT_POSIX_THREADS -D_THREAD_SAFE -traditional
> -DIT_EX_MACROS -DUSE_IFR -DOMNI -D__x86__ -D__linux__ -D__OSVERSION__=2
> -I/usr/local/omni/include -I/usr/local/omni/include/omniORB3
> -I/usr/local/omni/include/omnithread -I/usr/include/mysql
> -I/home/mike/workspace/sage/idl/Linux_i686
> -I/home/mike/workspace/sage/include -DUSE_NAMESERVICE -fpic
> Linux_i686/CosQuerySK.cc -o Linux_i686/CosQuerySK.o
> In file included from Linux_i686/CosQuerySK.cc:4:
> /home/mike/workspace/sage/idl/Linux_i686/CosQuery.hh:213: syntax error
> before `;'
> /home/mike/workspace/sage/idl/Linux_i686/CosQuery.hh:218: `QLType_Helper'
> was not declared in this
> scope
> /home/mike/workspace/sage/idl/Linux_i686/CosQuery.hh:218: template argument
> 3 is invalid
> /home/mike/workspace/sage/idl/Linux_i686/CosQuery.hh:220: ISO C++ forbids
> declaration of
> `QL_Sequence_var' with no type
> /home/mike/workspace/sage/idl/Linux_i686/CosQuery.hh:220: parse error
> before `;'/home/mike/workspace/sage/idl/Linux_i686/CosQuery.hh:227: type
> specifier omitted for parameter
> /home/mike/workspace/sage/idl/Linux_i686/CosQuery.hh:227: parse error
> before `*'/home/mike/workspace/sage/idl/Linux_i686/CosQuery.hh:228: missing
> ';' before right brace
> /home/mike/workspace/sage/idl/Linux_i686/CosQuery.hh: In method
> `CosQuery::QL_Sequence::QL_Sequence
> (const CosQuery::QL_Sequence &)':
> /home/mike/workspace/sage/idl/Linux_i686/CosQuery.hh:223: `QLType_Helper'
> undeclared (first use this
> function)
> /home/mike/workspace/sage/idl/Linux_i686/CosQuery.hh:223: (Each undeclared
> identifier is reported only
> once for each function it appears in.)
> /home/mike/workspace/sage/idl/Linux_i686/CosQuery.hh:223: template argument
> 3 is invalid
> /home/mike/workspace/sage/idl/Linux_i686/CosQuery.hh:223: confused by
> earlier errors, bailing out
> make: *** [Linux_i686/CosQuerySK.o] Error 1
> [mike@ci cosQuery]$

> Sai-Lai Lo wrote:

>> Mike,
>> Because what is defined in corbaidl.idl and ir.idl appears within the
>> CORBA
>> namespace, we have to treat the header files differently so that the
>> declarations appear in the right scope even for the compilers that does not
>> support namespace. The consequence is that the header files for these 2
>> idls are splitted into several fragments and got included from CORBA.h at
>> several different places.
>> Simply put it, corbaidl.hh and ir.hh does not exist and does not needed to
>> be included.
>> Please add the following to the end of CORBA.h
>> #ifndef __corbaidl_hh_EXTERNAL_GUARD__
>> #define __corbaidl_hh_EXTERNAL_GUARD__
>> #endif
>> #ifdef ENABLE_CLIENT_IR_SUPPORT
>> #ifndef __ir_hh_EXTERNAL_GUARD__
>> #define __ir_hh_EXTERNAL_GUARD__
>> #endif
>> #endif
>> This disables the include in the COSQuery stub header and you will be fine
>> as long as you define ENABLE_CLIENT_IR_SUPPORT.
>> Regards,
>> Sai-Lai
>> 



-- 
Sai-Lai Lo                                   S.Lo@uk.research.att.com
AT&T Laboratories Cambridge           WWW:   http://www.uk.research.att.com 
24a Trumpington Street                Tel:   +44 1223 343000
Cambridge CB2 1QA                     Fax:   +44 1223 313542
ENGLAND