您可以在RPGLE或CLLE程序源中設置這些編譯器選項。
在角色扮演你可以在源代碼的頂部使用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
現在,當你編譯程序(只需在PDM進入14
和回車鍵)它以您在源中指定的激活組行爲結束。沒有什麼可以在那裏記住自己。
我們實際上是爲RPG設計的,但是花了我多年的時間才找到CL的解決方案,而且很難在互聯網上找到,所以我只能在這裏發佈它(所以永遠不要忘記自己)。 – kratenko 2012-07-19 13:43:24