将 COBOL 编译为 Windows 的 32 位可执行文件

Compiling COBOL as 32-bit Executable For Windows

我正在深入 COBOL 的世界并编写了一个简单的程序,该程序使用 open-cobol (cobc) 从我的 KDE Plasma 命令行按预期进行编译和 运行s。我看到一些网站提到 COBOL 非常便携并且不需要多次编译,但是当我尝试 运行 在 Windows 10(即 32 位)上的相同输出程序时,系统状态该程序是 16 位应用程序,因此不能 运行.

是否有我可以与 cobc 一起使用的参数,以便我的程序在 Windows 10 上 运行 进行编译,或者我是否从根本上误解了这种语言的可移植性?

编译命令:cobc -x -o program program.cob

您的程序可能已经是 64 位可执行文件(取决于您的实际 OS,否则是 32 位),但它绝对不是 Windows 二进制文件(因为 Windows 不是它没有识别它,它只是猜测这是一个 16 位可执行文件。

COBOL 本身 可移植的,即使在不同的编译器之间也是如此(如果 您将自己限制在 "standard" COBOL 或仅使用编译器使用共享的扩展名),但在任何情况下你都需要 "some" 本机部分。 以 Java 或 .NET 为例:"runtime" 是本机二进制文件,它执行 java(或 msil)字节码。

有些 COBOL 编译器生成的中间代码实际上是可移植的,可以与您必须预先安装的 "native runtime" 一起使用。

最适合您情况的选项:采用兼容的编译器并在此平台上针对此平台重新编译 COBOL 源代码。 我建议 OpenCOBOL 的继任者:GnuCOBOL, using the official windows binaries.