Ibm midrange 如何编译现有的RPGLE程序
我需要对现有的和正在运行的RPGLE程序进行更改。当我直接编译(PDM中的选项14)时,我得到的错误是“必须为没有EXTPGM关键字的原型指定DFTACTGRP(*NO)” 我将DFTACTGRP更改为*NO,并重新编译以获取“绑定步骤中发现错误。有关详细信息,请参阅作业日志。”这显示“原因…”:未找到可供参考的定义Ibm midrange 如何编译现有的RPGLE程序,ibm-midrange,rpgle,Ibm Midrange,Rpgle,我需要对现有的和正在运行的RPGLE程序进行更改。当我直接编译(PDM中的选项14)时,我得到的错误是“必须为没有EXTPGM关键字的原型指定DFTACTGRP(*NO)” 我将DFTACTGRP更改为*NO,并重新编译以获取“绑定步骤中发现错误。有关详细信息,请参阅作业日志。”这显示“原因…”:未找到可供参考的定义 GU_在*模块对象中获取TranslatedText,或在库QTEMP中获取404xx 定义不存在或不具有相同的数据或程序 键入作为引用。” 在编译中,我看到: +D GU_get
GU_在*模块对象中获取TranslatedText,或在库QTEMP中获取404xx 定义不存在或不具有相同的数据或程序
键入作为引用。” 在编译中,我看到:
+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个这样的错误。除了将源代码复制到测试库并尝试编译它之外,我没有对现有程序做任何修改
我试着联系最初写它的人,我收到的唯一有用的信息是“不需要绑定目录”…我没有具体说明
有没有关于我做错了什么以及如何编译它的想法?也许这会解决问题。编译为模块,然后执行
UPDPGM PGM(YOURPGM) MODULE(YOURMODULE)
执行DSPPGM以查看正在使用的ACTGRP,然后添加以下控制(H)规范 或者如果你被固定的形式困住了
h dftactgrp(*no) actgrp('xxxx')
其中“XXXX”是使用DSPPGM找到的激活组
您可以查看是否存在引用服务程序的绑定目录
WRKOBJ OBJ(*LIBL/*ALL)OBJTYPE(*BNDDIR)
。您可以使用控制规范上的bnddir('xxxxx')
子句指定要使用的绑定目录。据我所知,这里的问题是编译器找不到函数GU_getTranslatedText
此函数可以位于某些服务程序中,也可以位于您试图编译的程序中,最初由多个模块组成,此函数位于另一个模块中。您是否可以复制/粘贴在发布
DSPPGM PGM(YOURPGM)DETAIL(*module)
和DSPPGM PGM(YOURPGM)DETAIL时获得的模块名称/库(*SRVPGM)
?创建优化调试Opt模块库属性日期级数据或404xx QTEMP RPGLE 10/15/15*无*是服务Opt程序库激活签名IPGENUTIL*LIBL*IMMED 00000000000000000000000000000000 IPMCUTIL*LIBL*IMMED A62F7C3390DC833298D73DB996EFE431 QRNXIE QSYS*IMMED D8D9D5E7C9C54040404040 QRNXIO QSYS*IMMED D8D9D5E7E4E3C9D3404040QLEAWI QSYS*IMMED 44F70FABA08585397BDF0CF195F82EC1但它不是一个模块..这是现有对象..或404*PGM PRODLIBRPGLE@geojf3是的,但ILE*PGM由*模块组成,请尝试使用15进行编译,然后更新…可能编译器找不到IPGENUTI和IPMCUTIL*SRVPGM,您的文件中是否有BNDDIR关键字source(或/copy/include)?没有H spec或bnddir关键字i nsource。有许多/copy语句,其中一个确实引入了实用程序的代码。我创建了模块,并成功编译了它。更新模块时,我收到一个错误“模块存储模型无法更改”
h dftactgrp(*no) actgrp('xxxx')