GNUCobol(OpenCOBOL)错误:libcob:module'»';找不到

GNUCobol(OpenCOBOL)错误:libcob:module'»';找不到,cobol,microfocus,gnucobol,Cobol,Microfocus,Gnucobol,我正在转换一组为Microfocus编译器编写的COBOL程序,以便与GnuCobol一起使用。到目前为止,我已经取得了一定的成功,只需要更改一些微焦点特定的日期命令,以及使用GnuCobol的-std=mf参数 我使用的是从 成功编译后运行某个文件时,我遇到此错误: libcob: module '»' not found 在OpenCOBOLIDE中玩过之后,我发现有问题的地方是 CALL X"AF" USING SET-BIT-PAIRS

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

我使用的是从

成功编译后运行某个文件时,我遇到此错误:

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”与屏幕相关(至少在我看到的一个文档页面中),您可能只需要找出要发送到终端的转义码,然后通过显示而不是调用手动执行该部分

如果不知道调用的是什么x“AF”子函数(无论是在设置位对中),就不可能提出建议尝试的特定VT100序列。如果只是子功能18,则显示单个字符而不前进可能就足够了。子功能22仅意味着通过发出Ctrl-G等来敲响终端铃声

如果您有兴趣,可以运行
cobc--list system
(或者只需查看您使用的预构建包中包含的GnuCOBOL手册),查看GnuCOBOL支持哪些库存系统库调用

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