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

问题描述 投票:1回答:1

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

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

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

windows compilation cobol 16-bit
1个回答
3
投票

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

COBOL本身是可移植的,即使在不同的编译器之间(如果你将自己限制为“标准”COBOL或只使用编译器使用的扩展名),但在任何情况下你都需要“一些”本机部分。作为Java或.NET的一个众所周知的例子:“运行时”是本机二进制文件,它执行java(或msil)字节代码。

有一些COBOL编译器生成中间代码,这些代码实际上是可移植的,可以与您必须事先安装的“本机运行时”一起使用。

最简单的选择:使用兼容的编译器并在此平台上重新编译此平台的COBOL源。我建议OpenCOBOL的继任者:GnuCOBOL,使用official windows binaries

© www.soinside.com 2019 - 2024. All rights reserved.