如何编译现有的 RPGLE 程序
How to compile exisiting RPGLE program
我需要对现有的工作 RPGLE 程序进行更改。当我进行直接编译时(来自 PDM 的选项 14),我得到的错误是 "DFTACTGRP(*NO) must be specified for a prototype that does not have the EXTPGM keyword."
我将 DFTACTGRP 更改为 *NO 并重新编译得到 "Errors were found during the binding step. See the job log for more information." 其中显示“原因......:没有找到定义供参考
GU_getTranslatedText 在库 QTEMP 中的 *MODULE 对象 OR404XX 中。这
定义不存在或不是相同的数据或过程
类型作为参考。 “
在编译中我看到:
+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 个这样的错误。除了将源代码复制到测试库并尝试编译它之外,我对现有程序不做。
我试着联系了最初的作者,我收到的唯一有用的信息是 "No binding directory needed"...我并没有具体说明。
关于我做错了什么以及如何编译它有什么想法吗?
也许这会解决问题。编译为模块然后执行
UPDPGM PGM(YOURPGM) MODULE(YOURMODULE)
执行 DSPPGM 以查看正在使用的 ACTGRP,然后添加以下控制 (H) 规范
ctl-opt dftactgrp(*NO) actgrp('xxxx');
或者如果您受困于固定形式...
h dftactgrp(*no) actgrp('xxxx')
其中 'XXXX' 是使用 DSPPGM 找到的激活组。
您可能会查看是否存在包含参考服务程序的现有绑定目录 WRKOBJ OBJ(*LIBL/*ALL) OBJTYPE(*BNDDIR)
。您可以使用控制规范中的 bnddir('xxxxx')
子句指定要使用的绑定目录。
据我了解,这里的问题是编译器找不到函数GU_getTranslatedText
此函数可以位于某个服务程序或您要编译的程序中,最初由几个模块组成,此函数位于另一个模块中。
我需要对现有的工作 RPGLE 程序进行更改。当我进行直接编译时(来自 PDM 的选项 14),我得到的错误是 "DFTACTGRP(*NO) must be specified for a prototype that does not have the EXTPGM keyword."
我将 DFTACTGRP 更改为 *NO 并重新编译得到 "Errors were found during the binding step. See the job log for more information." 其中显示“原因......:没有找到定义供参考
GU_getTranslatedText 在库 QTEMP 中的 *MODULE 对象 OR404XX 中。这
定义不存在或不是相同的数据或过程
类型作为参考。 “
在编译中我看到:
+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 个这样的错误。除了将源代码复制到测试库并尝试编译它之外,我对现有程序不做。
我试着联系了最初的作者,我收到的唯一有用的信息是 "No binding directory needed"...我并没有具体说明。
关于我做错了什么以及如何编译它有什么想法吗?
也许这会解决问题。编译为模块然后执行
UPDPGM PGM(YOURPGM) MODULE(YOURMODULE)
执行 DSPPGM 以查看正在使用的 ACTGRP,然后添加以下控制 (H) 规范
ctl-opt dftactgrp(*NO) actgrp('xxxx');
或者如果您受困于固定形式...
h dftactgrp(*no) actgrp('xxxx')
其中 'XXXX' 是使用 DSPPGM 找到的激活组。
您可能会查看是否存在包含参考服务程序的现有绑定目录 WRKOBJ OBJ(*LIBL/*ALL) OBJTYPE(*BNDDIR)
。您可以使用控制规范中的 bnddir('xxxxx')
子句指定要使用的绑定目录。
据我了解,这里的问题是编译器找不到函数GU_getTranslatedText 此函数可以位于某个服务程序或您要编译的程序中,最初由几个模块组成,此函数位于另一个模块中。