sqlca.cbl vs sqlca.cpy in command line compiling

For embedded DB2 SQL application, I figure it out that I can use command line to create the application.

cob64 -C MFSYNC -z -o myTest myTest.cbl sqlca.cpy -L/home/db2inst1/sqllib/lib64 -ldb2 -ldb2gmf

But I got this error :

/bin/ld:sqlca.cpy: file format not recognized; treating as linker script
/bin/ld:sqlca.cpy:1: syntax error
collect2: error: ld returned 1 exit status

But if I rename sqlca.cpy as sqlca.cbl.  run above command line as:

cob64 -C MFSYNC -z -o myTest  myTest.cbl  sqlca.cbl -L/home/db2inst1/sqllib/lib64 -ldb2 -ldb2gmf

Everything is fine. 

Why cob64 does not know to compile sqlca.cpy file but only compile sqlca.cbl file?

But in Visual COBOL, it uses sqlca.cpy without any issue.

Appreciated for the help.

Parents
  • Thank you, Blair

    I tried your instruction.

    echo $COBCPY
    /home/db2inst1/sqllib/include/cobol_mf:/opt/microfocus/VisualCOBOL/cpylib

    I have the $COBCPY setup correctly,  I also have "EXEC SQL INCLUDE sqlca END-EXEC" in mytest.cbl

    cob64 -t  -C MFSYNC -z -o mytest  mytest.cbl -L/home/db2inst1/sqllib/lib64 -ldb2 -ldb2gmf

    rwxr-xr-x 1 db2inst1 db2iadm1 13919 Apr 29 16:10 mytest

    You can see the file size is 13919 bytes

    cob64 -t  -C MFSYNC -z -o mytest  mytest.cbl sqlca.cbl -L/home/db2inst1/sqllib/lib64 -ldb2 -ldb2gmf

    -rwxr-xr-x 1 db2inst1 db2iadm1 18582 Apr 29 16:06 mytest

    The file sizes are different.  both work under DB2. it seems sqlca.o is linked into the later one. but the first one just call it at run-time.  I feel confused.

    To my expectation, the file size for both should be the same. no matter explicitly or implicitly to include sqlca.cpy.

    Thank you again,

    -Jack

Reply
  • Thank you, Blair

    I tried your instruction.

    echo $COBCPY
    /home/db2inst1/sqllib/include/cobol_mf:/opt/microfocus/VisualCOBOL/cpylib

    I have the $COBCPY setup correctly,  I also have "EXEC SQL INCLUDE sqlca END-EXEC" in mytest.cbl

    cob64 -t  -C MFSYNC -z -o mytest  mytest.cbl -L/home/db2inst1/sqllib/lib64 -ldb2 -ldb2gmf

    rwxr-xr-x 1 db2inst1 db2iadm1 13919 Apr 29 16:10 mytest

    You can see the file size is 13919 bytes

    cob64 -t  -C MFSYNC -z -o mytest  mytest.cbl sqlca.cbl -L/home/db2inst1/sqllib/lib64 -ldb2 -ldb2gmf

    -rwxr-xr-x 1 db2inst1 db2iadm1 18582 Apr 29 16:06 mytest

    The file sizes are different.  both work under DB2. it seems sqlca.o is linked into the later one. but the first one just call it at run-time.  I feel confused.

    To my expectation, the file size for both should be the same. no matter explicitly or implicitly to include sqlca.cpy.

    Thank you again,

    -Jack

Children
No Data