【问题标题】:GNUCobol (OpenCOBOL) error: libcob: module '»' not foundGNUCobol (OpenCOBOL) 错误:libcob:找不到模块“»”
【发布时间】:2018-04-04 15:45:39
【问题描述】:

我正在转换一组为 Microfocus 的编译器编写的 COBOL 程序,以便与 GnuCobol 一起使用。到目前为止,我已经取得了一定的成功,只需要更改一些特定于微焦点的日期命令,以及使用 GnuCobol 的 -std=mf 参数。

我正在使用来自www.arnoldtrembley.com/GnuCOBOL.htm 的预构建版本

我在编译成功后运行某个文件时遇到了这个错误:

libcob: module '»' not found

在OpenCOBOLIDE玩了一圈,发现有问题的行是

 CALL X"AF" USING SET-BIT-PAIRS
                               USER-KEY-CONTROL

我能做些什么来解决这个问题?

【问题讨论】:

    标签: cobol microfocus gnucobol


    【解决方案1】:

    您需要重新编码该部分。 GnuCOBOL 仅支持少数编号的系统支持例程。 x"91"、x"E4"、x"E5"、x"F4" 和 x"F5"。 x"AF" 尚未在内置系统库例程列表中。甚至受支持的也不包括处理所有子功能。

    由于 x"AF" 与屏幕相关(至少从我看到的一个文档页面来看),您可能只需弄清楚要发送到终端的转义码并使用 DISPLAY 而不是 CALL 手动完成该部分。

    如果不知道调用了什么 x"AF" 子函数(无论 SET-BIT-PAIRS 中的什么内容),就不可能提出特定的 VT100 序列来建议尝试。如果它只是子功能 18,那么 DISPLAY 一个没有前进的字符可能就足够了。子功能 22 只是意味着敲响终端铃声,这可以通过发出 Ctrl-G 来完成。等等。

    如果您好奇,请运行 cobc --list-system(或查看您使用的预构建包中包含的 GnuCOBOL 手册)以查看 GnuCOBOL 支持哪些库存系统库调用。

    如果您喜欢冒险,您可以随意查看编译器源代码树,只需通过将 CALL 编号链接到 C 函数,使用新条目扩展 libcob/system.def 来更改 libcob 以支持您拥有的代码并从源代码重建 GnuCOBOL。

    【讨论】:

      猜你喜欢
      • 2022-10-15
      • 2021-12-25
      • 1970-01-01
      • 2018-12-30
      • 1970-01-01
      • 2016-12-20
      • 1970-01-01
      • 1970-01-01
      • 2021-01-20
      相关资源
      最近更新 更多