如何编译已有的RPGLE程序?

问题描述 投票:0回答:2

我需要对一个现有的、正在运行的RPGLE程序进行修改。 当我进行直接编译时(PDM的选项14),得到的错误是 "DFTACTGRP(*NO)必须为没有EXTPGM关键字的原型指定"。

我将DFTACTGRP改为*NO,然后重新编译得到 "在绑定步骤中发现错误。更多信息请参见工作日志。" 其中显示 "原因......:在库QTEMP的*MODULE对象OR404XX中没有找到引用GU_getTranslatedText的定义。该定义要么不存在,要么与引用的数据或过程类型不一样。 "

在编译中我看到。

+D GU_getTranslatedText...                              
+D                 pr           198a   extproc('GU_-    
+D                                     getTranslatedText')   
+D                                     varying               
+D  inText                      198a   value varying   



C                   eval      XNAM =                                      
C                                GU_getTranslatedText('MONTHLY')    

有大约30个这样的错误在调用中。 我除了将源码复制到测试库中并尝试编译外,没有对现有程序做任何处理。

我试着联系原来写它的人,我收到的唯一有用的信息是 "不需要绑定目录"......反正我没有指定目录。

有什么办法可以让我知道我做错了什么,以及如何编译它?

ibm-midrange rpgle
2个回答
0
投票

也许这可以解决这个问题。编译为模块,然后执行

UPDPGM PGM(YOURPGM) MODULE(YOURMODULE)

0
投票

做一个DSPPGM,看看使用的是什么ACTGRP,然后添加以下控制(H)规格。

  ctl-opt dftactgrp(*NO) actgrp('xxxx');

或者如果你坚持使用固定的形式... ...

h dftactgrp(*no) actgrp('xxxx')

其中'XXXX'是用DSPPGM找到的激活组。

你可以看看是否存在一个包含参考服务程序的绑定目录。WRKOBJ OBJ(*LIBL/*ALL) OBJTYPE(*BNDDIR). 你可以通过使用 bnddir('xxxxx') 控制规范上的条款。

© www.soinside.com 2019 - 2024. All rights reserved.