我有一个idl2java ant
任务的问题(我使用的是org.jacorb.idl.JacIDL)。这个问题在我的cpp从idl文件生成cpp代码的实现中不存在。
我有3*.idl文件,比方说:
- A.idl
- B.idl
- C.idl
每一个都在psm目录中以文件命名的文件夹中,现在:
A.idl仅由基本类型组成,
B.idl包括A.idl,也有一些基本类型,
C.idl按特定顺序包括B.idl和A.idl。
我不能更改包含订单。构建A和B不会产生任何问题。建筑物C生成错误:
[jacorb.idl] ERROR : C.idl, line:16(52): Undefined name:
将includes转换为A,B顺序而不是B,A解决了问题,但我会重复一遍——由于各种原因,我不能做到这一点,其中之一是基于ACE库的cpp实现工作良好
所以我礼貌地请求你的帮助,因为我不知道这是否能得到帮助。这是我的实际任务作为奖励——也许它会有所帮助(如果有拼写错误,对不起,它只在这里——代码"有效")。
<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开发人员邮件列表中询问JacORB问题。
你能澄清一下你使用的是什么版本的JacORB吗?你能用3.6重现这个问题吗?
您没有提供足够的信息来说明什么是未定义的。
您是否尝试过删除"all"标志并一次编译一个?