您可以在 RPGLE 或 CLLE 程序源中设置这些编译器选项。
在RPG中,您将使用源代码顶部的 H-Specs 来设置编译器选项。像这样:
HDFTACTGRP(*NO) ACTGRP(*CALLER)
只需将其添加到您那里的任何其他内容中,例如:
H DEBUG DATEDIT(*YMD)
H DFTACTGRP(*NO) ACTGRP(*CALLER)
H BNDDIR('SRVBNDDIR')
H MAIN(main)
F OUTPUT O F 3000 DISK USROPN
D ...
* procedures, etc.
在CL中,有一个特殊的命令DCLPRCOPT
,它实际上不是一个命令(因为它不会在运行时执行),而是一种设置编译器选项的方法。
DCLPRCOPT DFTACTGRP(*NO) ACTGRP(*CALLER)
只需将其放在程序的顶部即可。我通常把它放在变量声明之后和任何实际命令之前。我还添加了一个简短的评论,因为我认为可能正确我的代码的每个人都不会理解那里做了什么:
PGM PARM(&SOMEPARM)
DCL VAR(&SOMEPARM) TYPE(*CHAR) LEN(*64)
DCL VAR(&COUNTER) TYPE(*DEC) LEN(5 0)
/* Setting options for compilation of this program */
/* This is a permanent job, so we want a *NEW activation group. */
DCLPRCOPT DFTACTGRP(*NO) ACTGRP(*NEW)
/* do actual work here in a loop */
/* ..... */
ENDPGM
现在,当您编译程序时(只需14
在 PDM 中输入并按回车键),它会以您在源代码中指定的激活组行为结束。那里没有什么可以记住自己的。