我尝试使用最新版本的 TAO IDL 编译器(已发布的包版本 6.0.2)编译来自 Rhapsody 7.1.1 生成的 IDL 文件,但我收到一些错误,因为匿名类型在 CORBA 3.1 中已弃用。
可以使用 TAO IDL 编译器"-as"选项抑制此类错误。但是,出于维护原因,我想生成兼容的 IDL 文件。
此外,我从 TAO IDL 编译器收到与接口转发相关的其他错误。此生成的 IDL 文件将正确编译,直到 TAO 版本 5.7.9 (1.7.9)。
编辑:
接口转发的主要问题是,已定义接口的转发会隐藏此类接口的内容。
例:
A.idl
interface A {
typedef long my_long_type;
};
B.idl
#include "A.idl"
interface A;
interface B {
typedef A::my_long_type my_b_long; // Error with TAO versions greater than 5.7.9
};
如果我删除 A 的前向没有问题,但我不能,因为 IDL 文件是由 Rhapsody 通过这种方式生成的。
对于接口转发,创建一个小的重现器,如果这是TAO_IDL中的错误,请在 TAO bugzilla 中报告它 http://bugzilla.dre.vanderbilt.edu/