Loading...
Select Version
&pagelevel(3)&pagelevel
It is advisable to link the main program with STDLIB=*DYNAMIC
(default value) and call EDT with the ILCS flag indicator.ilcs_environment = 1
(default value). The procedure below compiles and links C main programs which are stored as BEISPIEL1.C
, BEISPIEL2.C
, ... in the library EDT.BEISPIELE
.
The generated program, the compiler lists and the diagnostic output are also stored in this library.
/SET-PROCEDURE-OPTIONS INPUT-FORMAT=FREE-RECORD-LENGTH,/ DATA-ESCAPE-CHAR=STD /BEGIN-PARAMETER-DECLARATION / DECLARE-PARAMETER NAME=NR / DECLARE-PARAMETER NAME=LIB,INITIAL-VALUE=C'EDT.BEISPIELE /END-PARAMETER-DECLARATION /START-CPLUS-COMPILER //MODIFY-SOURCE-PROP LANGUAGE=*C //MODIFY-RUNTIME-PROPERTIES PARAMETER-PROMPTING=*NO //MODIFY-INCLUDE-LIBRARIES USER-INCLUDE-LIBRARY=// $.SYSLIB.EDT.170 ------------------------------ (1) //MODIFY-DIAGNOSTIC-PROPERTIES OUTPUT=*LIBRARY-ELEMENT(// LIB=&LIB,ELEM=*STD-ELEMENT()),// MIN-MSG-WEIGHT=*NOTE //MODIFY-LISTING-PROPERTIES OUTPUT=*LIBRARY-ELEMENT(// LIB=&LIB,ELEM=*STD-ELEMENT()),SOURCE=*YES() //COMPILE SOURCE=*LIB-ELEM(LIB=&LIB,ELEM=BEISPIELE&NR..C),// MODULE-OUTPUT=*LIB-ELEM(LIB=&LIB,ELEM=BEISPIEL&NR) //MOD-BIND-PROP INCLUDE=(*LIB(LIB=&LIB,ELEM=BEISPIEL&NR),- ---------- (2)
// *LIB(LIB=$.SYSLNK.EDT.170,ELEM=IEDTGLE)),// RUNTIME-LANG=*C,STDLIB=*DYNAMIC --------------------------------- (3) //BIND OUTPUT=*LIB(LIB=&LIB,ELEM=BSP&NR.C) --------------------------- (4) //END /EXIT-PROCEDURE
Explanations
(1) | It is assumed that SYSLIB.EDT.170 is installed under the default user ID. The C compiler needs this library in order to locate the IEDTGLE interface header files. |
(2) | The user program is linked to the module IEDTGLE from SYSLNK.EDT.170 . IEDTGLE uses IMON to locate the EDT libraries and either loads EDT dynamically or connects to the EDT subsystem. |
(3) | The adapter for the C runtime system is automatically linked by the compiler if STDLIB=*DYNAMIC is specified. |
(4) | The generated program can then be started with / |
The ILCS flag is only significant if EDT is to load and call user routines (see the following sections).