[omniORB] ir.idl?

Mike Ladwig mike@twinpeaks.prc.com
Tue, 24 Apr 2001 11:02:23 -0400


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
>