我正在转换一组为 Microfocus 编译器编写的 COBOL 程序,以便与 GnuCobol 一起使用。到目前为止,我已经取得了一定的成功,只需要更改一些特定于微焦点的日期命令,并使用 GnuCobol 的-std=mf
争论。
我正在使用预构建的版本www.arnoldtrembley.com/GnuCOBOL.htm http://www.arnoldtrembley.com/GnuCOBOL.htm
成功编译后运行某个文件时,我遇到此错误:
libcob: module '»' not found
在 OpenCOBOLIDE 中尝试后,我发现有问题的行是
CALL X"AF" USING SET-BIT-PAIRS
USER-KEY-CONTROL
我可以做什么来解决这个问题?
您需要重新编码该部分。 GnuCOBOL 仅支持少数编号的系统支持例程。 x“91”、x“E4”、x“E5”、x“F4”和x“F5”。 x“AF”尚未出现在内置系统库例程列表中。即使支持的功能也不包括所有子功能的处理。
由于 x"AF" 与屏幕相关(至少从我见过的一个文档页面来看),您可能只需弄清楚要发送到终端的转义代码,然后使用 DISPLAY 而不是 CALL 手动执行该部分。
如果不知道正在调用什么 x“AF”子功能(无论 SET-BIT-PAIRS 中是什么),就不可能提出具体的 VT100 序列来建议尝试。如果它只是子功能 18,那么“不前进”地显示单个字符可能就足够了。子功能 22 只是表示敲响终端铃声,可以通过按下 Ctrl-G 来完成。 ETC。
如果你好奇,就跑吧cobc --list-system
(或者只需查看包含在您使用的预构建包中的 GnuCOBOL 手册)以了解 GnuCOBOL 支持哪些库存系统库调用。
如果您喜欢冒险,您可以随意查看编译器源代码树,只需更改 libcob 以支持您拥有的代码,方法是将 CALL 编号链接到 C 函数,使用新条目扩展 libcob/system.def 并重建 GnuCOBOL从源头。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)