2017-03-18 71 views
-2

,當我嘗試編譯我的程序我得到這些錯誤消息。
IEW2677S 5130有效進入點不能確定。
IEW2008I 0F03加工完成。返回碼= 12JCL嚴重消息

這裏是JCL:

000100 //IBMP5 JOB (COMPILE),USERID,MSGCLASS=H,REGION=0M,     
000200 //   MSGLEVEL=(1,1),CLASS=A,NOTIFY=&SYSUID      
000300 //******************************************************************* 
000400 //*                 * 
000401 //* THIS JCL WILL COMPILE, LINK-EDIT (BIND) AND RUN A PROGRAM  * 
000402 //*                 * 
000410 //******************************************************************* 
000420 //* COMPILATION STEP             
000430 //*                  
001100 //STEP1 EXEC PGM=IBMZPLI,REGION=1M,PARM=('MACRO,OBJECT,INSOURCE') 
001200 //STEPLIB DD DSNAME=IEL380.SIBMZPRC,DISP=SHR       
001201 //   DD DSNAME=IEL380.SIBMZCMP,DISP=SHR       
001204 //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(2,1))        
002000 //SYSPRINT DD SYSOUT=*             
002010 //SYSOUT DD SYSOUT=*             
002100 //*                  
002510 //* SOURCE CODE MEMBER             
002520 //*                  
002530 //PLI.SYSIN DD DSN=INVAT.SOURCE(PROG5),DISP=SHR       
002531 //*                  
002532 //* TARGET FOR OBJECT FILE            
002535 //*                  
002536 //SYSLIN DD DSN=INVAT.OBJ(PROG5),DISP=(OLD,PASS),UNIT=SYSALLDA,  
002537 //    SPACE=(CYL,(1,1)),DCB=(LRECL=80,BLKSIZE=800)    
002540 //*                  
002541 //* LINKAGE (BIND) STEP            
002542 //*                  
002550 //STEP2 EXEC PGM=IEWL,REGION=0M          
002560 //SYSLIB DD DSNAME=SYS1.LINKLIB,DISP=SHR        
002570 //   DD DSNAME=CEE.SCEELKED,DISP=SHR        
002580 //SYSLIN DD DSN=INVAT.OBJ(PROG5),DISP=SHR       
002590 //LKED.SYSLMOD DD DSN=INVAT.LOAD(PROG5),DISP=SHR      
002600 //SYSUT1 DD UNIT=SYSALLDA,SPACE=(TRK,(10,10))      
002700 //SYSPRINT DD SYSOUT=*             
002800 //* 
002900 //* EXECUTION STEP              
003000 //*                  
003100 //STEP3 EXEC PGM=PROG5            
003200 //STEPLIB DD DSN=INVAT.LOAD(PROG5),DISP=SHR        
003300 //SYSPRINT DD SYSOUT=*             
003400 //SYSIN DD *               
003800 /*                  
003900 //                  
+3

您是否被要求編寫自己的JCL而不是使用標準程序在您的站點編譯PL/I程序? '// PLI.SYSIN DD DSN = INVAT.SOURCE(PROG5),DISP = SHR'那是什麼?和'// STEPLIB DD DSN = INVAT.LOAD(PROG5),DISP = SHR'。如果你從JCL開始,我不建議黑客使用PROCs的東西不要使用PROCs。 –

+0

同意Bill ...你遇到的問題是PLI.SYSIN應該只是SYSIN,如果你不執行一個叫做PLI的PROC。你擁有它的方式,沒有輸入到編譯器,因此沒有輸出對象代碼和013收到你收到。簡單的解決方法是更改​​PLI.SYSIN和LKED.SYSLMOD的東西來刪除proc步驟名稱(即,只是SYSIN和SYSLMOD)。 –

+0

......另外一件事是,SYSLMOD DD DSN = dataset(member)並沒有什麼錯,並跳過了SYSLIN。默認情況下,ENTRY將是輸入對象文件中的第一個CSECT,並且由於您在SYSLMOD中指定了成員名稱,因此不需要NAME。 –

回答

2

正常(在所有的編譯JCL我曾經看着)的SYSLMOD,不指定成員。所以,你該行會是這個樣子:

//SYSLMOD DD DSN=INVAT.LOAD,DISP=SHR 

,然後說下,你將包括成員在系統輸入:

//LKED.SYSIN DD * 
    ENTRY PROG5 
    NAME PROG5(R) 
/*     

所有一起會給你這樣的事情:

000100 //IBMP5 JOB (COMPILE),USERID,MSGCLASS=H,REGION=0M,     
000200 //   MSGLEVEL=(1,1),CLASS=A,NOTIFY=&SYSUID      
000300 //******************************************************************* 
000400 //*                 * 
000401 //* THIS JCL WILL COMPILE, LINK-EDIT (BIND) AND RUN A PROGRAM  * 
000402 //*                 * 
000410 //******************************************************************* 
000420 //* COMPILATION STEP             
000430 //*                  
001100 //STEP1 EXEC PGM=IBMZPLI,REGION=1M,PARM=('MACRO,OBJECT,INSOURCE') 
001200 //STEPLIB DD DSNAME=IEL380.SIBMZPRC,DISP=SHR       
001201 //   DD DSNAME=IEL380.SIBMZCMP,DISP=SHR       
001204 //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(2,1))        
002000 //SYSPRINT DD SYSOUT=*             
002010 //SYSOUT DD SYSOUT=*             
002100 //*                  
002510 //* SOURCE CODE MEMBER             
002520 //*                  
002530 //PLI.SYSIN DD DSN=INVAT.SOURCE(PROG5),DISP=SHR       
002531 //*                  
002532 //* TARGET FOR OBJECT FILE            
002535 //*                  
002536 //SYSLIN DD DSN=INVAT.OBJ(PROG5),DISP=(OLD,PASS),UNIT=SYSALLDA,  
002537 //    SPACE=(CYL,(1,1)),DCB=(LRECL=80,BLKSIZE=800)    
002540 //*                  
002541 //* LINKAGE (BIND) STEP            
002542 //*                  
002550 //STEP2 EXEC PGM=IEWL,REGION=0M          
002560 //SYSLIB DD DSNAME=SYS1.LINKLIB,DISP=SHR        
002570 //   DD DSNAME=CEE.SCEELKED,DISP=SHR        
002580 //SYSLIN DD DSN=INVAT.OBJ(PROG5),DISP=SHR       
002590 //SYSLMOD DD DSN=INVAT.LOAD,DISP=SHR      
002600 //SYSUT1 DD UNIT=SYSALLDA,SPACE=(TRK,(10,10))      
002700 //SYSPRINT DD SYSOUT=*   
     //LKED.SYSIN DD * 
      ENTRY PROG5 
      NAME PROG5(R) 
     /*           
002800 //* 
002900 //* EXECUTION STEP              
003000 //*                  
003100 //STEP3 EXEC PGM=PROG5            
003200 //STEPLIB DD DSN=INVAT.LOAD(PROG5),DISP=SHR        
003300 //SYSPRINT DD SYSOUT=*             
003400 //SYSIN DD *               
003800 /*                  
003900 //  

給一個嘗試,看看是否有幫助。

編輯:

你缺少什麼,並最終解決了這個JCL是我添加到鏈接編輯(LKED)步驟(入境一行和名稱一行)的SYSIN線。基本上,鏈接編輯步驟(這是編譯過程中的最後一步,負責將編譯後的代碼複製到loadlib)發生的事情不知道條目名稱或您試圖編譯的程序的名稱。您已經指定了一個SYSIN,但是由於SYSIN爲空,您收到錯誤,指出該模塊沒有文本。

+0

哇!完美工作。非常感謝您的幫助。我目前正在接受培訓,這個JCL對我來說只是頭疼的事情。 – Adi

+0

如果你能給我一些關於你做什麼和爲什麼的細節,那對我來說意味着很多。 – Adi

+1

生病編輯我的答案在幾分鐘內與更多細節 – SaggingRufus