在opencobol中解释ubuntu linux中的COBOL-DB2编译?

时间:2012-07-13 18:33:19

标签: gnucobol

我想使用opencobol编译器在ubuntu linux中运行我的cobol-db2程序,请解释一下使用opencobol在linux下运行程序的过程。

1 个答案:

答案 0 :(得分:1)

如果这违反了Stackoverflow的任何年龄限制规则,请原谅;

请参阅http://opencobol.add1tocobol.com/#how-does-the-opencobol-compiler-work

也许http://opencobol.add1tocobol.com/#does-opencobol-support-any-sql-databases

用于链接到数据库的示例。

编辑:根据mbinette的建议,而不是简单的链接

简而言之,OpenCOBOL是一个多阶段编译器。

  • 预处理源文本。 cobc -E 生成后处理文本到stdout并停止
  • 转换为C. cobc -C 以生成.c源代码文件并停止
  • 使用本机C编译器转换为汇编程序。 cobc -S 生成.s汇编源和停止
  • 生成对象。 cobc -c 将生成.o目标文件并停止
  • 生成。 cobc -x ,或 cobc -m ,或 cobc -b ,用于可执行文件,模块(.so或DLL),最后构建用于创建多个命令行输入中的动态共享对象。

OpenCOBOL擅长共享库,并且通过使用C应用程序二进制接口,可以使用COBOL CALL 动词动态加载大多数(如果不是全部).so(或DLL)符号。

CALL "DB2-CONNECT"
    USING
        BY REFERENCE "database name"
        BY CONTENT credentials
        BY VALUE control-bits
    RETURNING pointer-to-handle
    ON EXCEPTION
        DISPLAY "Can't find DB2-CONNECT, use -ldb2 with cobc" END-DISPLAY
END-CALL

我编写了上面的调用框架,因为我没有DB2库或手头的文档

要编译程序以使用DB2服务,您可以使用类似

的程序
cobc -x myprogram.cob -ldb2 -L/path/to/DB2lib

或更可能在更大的应用程序中,

cobc -b myprogram.cob hisprogram.cob herprogram.cob
export COB_LIBRARY_PATH=/path/to/development/libraries
export COB_PRE_LOAD=db2-dev:other-dev-libs
cobcrun myprogram

有关详细信息,请参阅常见问题解答,希望永远隐藏在上面的链接

指出1.1版本的 OpenCOBOL不支持EXEC语法。 DB2 EXEC预处理器可能生成也可能不生成适用于OpenCOBOL的COBOL。 我被告知Oracle Pro * COBOL EXEC END-EXEC预编译器生成COBOL源代码,该代码可与OpenCOBOL一起编译以链接到Oracle SQL。