问题标签 [gnucobol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
510 浏览

java - JNA 和 JNI - 尝试引用未分配的内存

我正在使用 JNI(现在是 JNA 来查看问题是否发生变化)将 Java 连接到 C 代码。这段代码有两种我正在尝试使用的方法,它们应该从 Java 代码中多次调用,但是,当我进行本机调用时,我得到了它:

  • 调用方法一 = 我得到了回应
  • 调用方法二 = 我得到了回应
  • 再次调用方法 =尝试引用未分配的内存
    (信号 SIGSEGV)
  • 执行会因此失败而停止。

我试图单独调用第一种和第二种方法(而不是一个接一个地调用它们)并且问题没有发生。当我一个接一个地打电话时,它就会发生,就像他们应该工作一样。看起来我没有像我应该的那样释放内存,或者 JNA/JNI 正在这样做。

C 代码 (JNI)

C 代码 (JNA)

Java 调用

CALLExternMethod1 和 CALLExternMethod2 不是问题。即使存在虚假响应且未使用方法,也会发生此问题。

有同样问题的人吗?

0 投票
1 回答
871 浏览

linux - 在 ubuntu 上使用 gnu cobol 编译 windows (.exe) 可执行文件

我需要一个我在 .cobc 文件中编写的程序,以编译为 Windows 可执行文件。该文件名为 main.cobc
使用以下命令编译它: cobc -x -free *.cobc -o main
使其成为一个 linux 可执行文件,可以,但不能直接在 Windows 上运行。
我有 gnucobol (OpenCOBOL 安装在我的 linux ubuntu VM 上。
请帮忙。有没有办法以与 Windows 兼容的方式编译它?

提前致谢!

0 投票
2 回答
1371 浏览

cobol - cobol & JCL 去除多余的空格

我正在尝试接受来自 jcl 的输入,例如“John Snow”并从我的 cobol 程序运行它我使用 JUSTIFIED RIGHT VALUE SPACES 将字符串移动到右侧但是我需要使用我的 cobol pgm 删除额外的空格。

例如我的工作存储是:

在我的程序部门

它在屏幕右侧显示“John Snow”,但我不知道如何删除多余的空格。

0 投票
1 回答
453 浏览

c - DevC++ C 调用 OpenCobolIDE 模块

我正在尝试从使用 Dev C++ IDE 用 C 编写的程序调用 OpenCobol 文件处理例程(它们是免费的,我喜欢它们)。

当您将代码编译为模块时,Cobol 环境会生成一个 DLL,因此我希望我可以只使用调用代码的常规方法(见下文)。如果按如下方式编译和运行,我会收到错误消息“libcob:cob_init() 尚未被调用”,但是,在相关位置包含标头和库并取消注释代码中的部分后,我得到“未定义”引用 _imp_cob_init" 消息。

我显然错过了一些简单的东西。任何帮助,将不胜感激。

AdyB

0 投票
1 回答
1408 浏览

cobol - GNUCobol (OpenCOBOL) 错误:libcob:找不到模块“»”

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

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

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

在OpenCOBOLIDE中玩了一圈后,我发现违规行是

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

0 投票
2 回答
1310 浏览

syntax - 未找到 GnuCOBOL 入口点

我已经在我的 Ubuntu 17.04 系统上安装了 GnuCOBOL 2.2。我编写了一个基本的 hello world 程序来测试编译器。

该程序名为HelloWorld.cbl。当我用命令编译程序时

生成了 HelloWorld.so。当我尝试使用

我收到以下错误:

任何人都可以向我解释 GnuCOBOL 中的入口点是什么,并可能提出解决问题并成功执行此 COBOL 程序的方法吗?

0 投票
1 回答
141 浏览

cobol - GNUCobol 编译的程序比预期多记录一条

我正在学习 COBOL 编程并使用 GNUCobol(在 Linux 上)来编译和测试一些简单的程序。在其中一个程序中,我发现了一个我不理解的意外行为:在读取记录的顺序文件时,我总是得到一个额外的记录,并且在将这些记录写入报告时,最后一条记录被复制。

我制作了一个非常简单的程序来重现这种行为。在这种情况下,我有一个带有单行文本的文本文件:“0123456789”。该程序应该计算文件中的字符(或 1 个字符长的记录),我希望它显示“10”作为结果,但我得到“11”。

此外,在显示记录时,当它们被读取时,我得到以下输出:

(9 和 11 之间有两个空格)。

这是该程序的相关部分:

我正在使用编译器的默认选项,我尝试使用“WITH TEST {BEFORE|AFTER}”,但结果是一样的。这种行为的原因可能是什么,或者我怎样才能得到预期的结果?

编辑:我尝试使用“空”文件作为数据源,预计记录数为 0,使用两种不同的方法清空文件:

这样记录计数为 1(ls -l 为文件提供 1 个字节的大小)。

这样,记录计数为 0(ls -l 为文件提供 0 个字节的大小)。所以我猜想编译的程序以某种方式检测到一个额外的字符,但我不知道如何避免这种情况。

0 投票
0 回答
314 浏览

java - 本机方法中的致命错误:ReleasePrimitiveArrayCritical:边界检查失败

我正在尝试使用 JNI 将我的 Java 代码与 C 程序(使用 GnuCobol 翻译)连接起来。不幸的是,我无法访问 C 源代码并用 Java 重写,所以我创建了一个包装 C 程序来调用它。

帮助解决以下错误

该错误发生在第二次尝试从 C 程序获得一些响应时。

使用 -Xcheck:jni 生成的日志

我需要帮助找出原因。

来源

Java 代码片段

主要的gnucobollibC 源代码

该方法CALLBANANA来自使用 GNUCobol 翻译的 Cobol 代码。

临时解决方案

直接在 C 包装程序上处理所有信号。尽管有错误消息,但一切正常,对 GnuCobol 的数百万次调用没有任何问题。

仍在等待将代码重新编译为最新版本的 GnuCobol

0 投票
1 回答
224 浏览

clang - Gnucobol 将 .cob 编译为 .c 未能通过 clang 的编译器

我试图将 hello.cob 编译为 hello.c:

clang未能将 hello.c 编译为可执行文件:

这是hello.cob(可以编译cobc -x hello.cob):

0 投票
2 回答
841 浏览

cobol - COBOL 显示文件中的所有重复项

我有一个文件,其中包含不同名称的列表。有些人出现两次或更多。

我想显示在此列表中出现两次或更多的所有艺术家。

我该如何进行?

提前致谢,

仕龙