http://pic.dhe.ibm.com/infocenter/zos/v1r12/index.jsp?topic=%2Fcom.ibm.zos.r12.cbcux01%2Fcbcug19023.htm
On Fri, Mar 28, 2014 at 12:19 PM, Chuck Arney <[email protected]> wrote: > I'm making a first attempt at C code on z/OS and I'm having trouble making > the compiler work the way I understand it should from the manual. This is > such a basic function and it fails so miserably I'm sure this is some sort > of setup misunderstanding. > > The problem is that the compiler is not locating the header files that are > included in the source program. My understanding from the manual is that > the compiler PARM SEARCH controls the library search sequence used for > system headers and the PARM LSEARCH controls the search for user headers. I > have tried every combination of coding absolute paths, DDnames and PARMS > that I can come up with and the thing just refuses to work. The most simple > case I can see is to specify the compiler PARMS NOSEARCH,NOLSEARCH. > According to the manual with these parms, the compiler should search the > libraries/directories defined in the SYSLIB DD concatenation for system > headers and search the libraries/directories defined in USERLIB DD for user > headers. Using those parms with the SYSLIB and USERLIB DDs the compiler > does not find the #include header files which are certainly contained in the > libraries pointed to by the two DDs. I have tried much more complex options > using both PDS libraries and ZFS directories with no success. > > I have tried using several different levels of z/OS and they all fail in the > same way. The most recent system is 5650ZOS V2.1 z/OS XL C. This is using > the Batch compiler. Here is the simplest example: > > Code snippet: > > #include <stdio.h> > #include <iostream> > #define NUM_CHARS 36 > > JCL snippet: > > // SET #CPP=CBC > // SET #LE=CEE > //PROC JCLLIB ORDER=(&#CPP..SCCNPRC, > // &#LE..SCEEPROC) > //TEST1L EXEC EDCCB, > // CPARM='RENT,SOURCE,LIST,NOLSEARCH,NOSEARCH', > // TUNIT='VIO', > // LIBPRFX=&#LE., > // LNGPRFX=&#CPP., > //* INFILE=&#CPP..SCCNSAM(CCNYIV1), > // INFILE=TSTCASES.ASM(CTEST1), > // OUTFILE='TSTCASES.LOADLIB.PDSE(CTEST1),DISP=SHR' > //COMPILE.SYSLIB DD DSNAME=&#LE..SCEEH.H,DISP=SHR > // DD DSNAME=&#LE..SCEEH.SYS.H,DISP=SHR > // DD DSNAME=&#LE..SCEEH,DISP=SHR > //COMPILE.USERLIB DD PATH='/usr/include', > // PATHDISP=(KEEP,KEEP),PATHOPTS=ORDONLY,FILEDATA=TEXT > > And the result: > > Compiler options. . . . . . . : *GONUMBER *NOALIAS *RENT *TERMINA > : *NOSEARCH > : *NOLSEARCH > : *NOLOCALE *HALT(16) *PLIST(HOST) > : *NOCONVLIT > > LINE STMT > > > *...+....1....+....2....+....3....+....4....+....5....+....6....+ > 3 |#include <stdio.h> > > ===========> > .........a....................................................... > *=WARNING=========> a - CCN3296 #include file <stdio.h> not found. > > 6 |#include <iostream> > > ===========> > .........a....................................................... > *=WARNING=========> a - CCN3296 #include file <iostream> not found. > > 7 |#define NUM_CHARS 36 > > > What am I missing? > > Chuck Arney > Arney Computer Systems > Web: http://zosdebug.com > Facebook: http://www.facebook.com/arneycomputer > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN -- Mike A Schwab, Springfield IL USA Where do Forest Rangers go to get away from it all? ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
