使用 JacORB 在 *.idl 文件中包含顺序

Include order in *.idl file with JacORB

我在 idl2java ant 任务中遇到一个问题(我正在使用 org.jacorb.idl.JacIDL)。我的 cpp 从 idl 文件生成 cpp 代码的实现不存在这个问题。

我有 3 个 *.idl 文件,比方说:

每个都在psm目录下以文件命名的文件夹中,现在:
A.idl只包含基本类型,
B.idl包括A.idl还有一些基本类型,
C.idl 包括 B.idlA.idl 特定顺序.

我无法更改包含顺序。构建 AB 没有问题。 C 楼生成错误:

[jacorb.idl] ERROR : C.idl, line:16(52): Undefined name: 

转移包括 A,B 命令 而不是 B,A 解决问题,但我会重复自己 - 由于各种原因我不能这样做,其中之一是基于 ACE 库的 cpp 实现工作正常。

所以我礼貌地请求你的帮助,因为我不知道这是否有帮助。这是我的实际任务作为奖励 - 也许它会有所帮助(如果有打字错误抱歉,它只在这里 - 代码 'works')。

<target name="idlj-generate" depends="idlj-init">
    <idl2java
    srcdir="${psm.dir}/${project}/"
    destdir="${build.generated.dir}"
    packageprefix="com.mypackageprefix"
    includepath="${psm.dir}"
    all="true">
        <define key="__JACORB_GENERATE__"/>
        <define key="globalimport" value="true"/>
    </idl2java>
</target>

以及供参考的工作片段:

<taskdef name="idl2java" classname="org.jacorb.idl.JacIDL">
    <classpath refid="idlj.classpath"/>
</taskdef>

您最好在 jacorb-developer 邮件列表上向 JacORB 提问。

您能否说明一下您使用的是哪个版本的 JacORB - 您能用 3.6 重现该问题吗?

您没有提供足够的信息来说明未定义的内容。

您是否尝试过删除 "all" 标志并一次编译它们?