我正在转换一组为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我能做些什么来解决这个问题呢?
发布于 2017-10-24 13:00:53
你需要对这部分进行重新编码。GnuCOBOL仅支持少数编号系统支持例程。x"91",x"E4",x"E5",x"F4“和x"F5”。x"AF“还不在内置系统库例程的列表中。即使是支持的也不包括对所有子功能的处理。
由于x"AF“与屏幕相关(至少在我看到的一个文档页面上是这样),您可能只需要找出要发送到终端的转义代码,然后使用DISPLAY而不是CALL手动完成这一部分。
如果不知道正在调用什么x"AF“子函数(无论设置位对中是什么),就不可能想出一个特定的VT100序列来建议尝试。如果它仅仅是子功能18,那么显示单个字符而不前进可能就足够了。子功能22仅仅意味着按响终端钟,这可以通过发射Ctrl-G来完成。等。
如果您很好奇,可以运行cobc --list-system (或者查看GnuCOBOL手册,该手册包含在您使用的预构建包中),以了解GnuCOBOL支持哪些常用的系统库调用。
如果您喜欢冒险,您可以自由地查看编译器源代码树,只需通过将调用号链接到C函数、使用新条目扩展libcob/system.def并从源代码重新构建GnuCOBOL来更改libcob以支持您拥有的代码。
https://stackoverflow.com/questions/46900457
复制相似问题