Компиляция COBOL как 32-битного исполняемого файла для Windows - PullRequest
0 голосов
/ 12 февраля 2019

Я погружаюсь в мир COBOL и написал простую программу, которая компилируется и запускается, как и предполагалось, из моей командной строки KDE Plasma с использованием open-cobol (cobc).Я видел, как на нескольких сайтах упоминалось, что COBOL довольно переносим и не требует многократных компиляций, но когда я пытаюсь запустить одну и ту же программу вывода в Windows 10 (то есть 32-битную), система заявляет, что программа является 16-битнойприложение и, следовательно, не может быть запущен.

Есть ли параметры, которые я могу использовать с cobc для компиляции таким образом, чтобы мои программы работали в Windows 10, или я в корне неправильно понимаю переносимость этого языка?

Команда компиляции: cobc -x -o program program.cob

1 Ответ

0 голосов
/ 13 февраля 2019

Ваша программа, скорее всего, уже является 64-битным исполняемым файлом (в зависимости от вашей реальной ОС, в противном случае она 32-битная), но это определенно не бинарный файл Windows (а поскольку Windows не распознает его, она просто догадывается, что это 16-битный исполняемый файл).

Сам COBOL является переносимым, даже между различными компиляторами (, если , вы ограничиваетесь «стандартным» COBOL или используете только те расширения, которые используются совместно используемыми компиляторами), новам нужны "некоторые" родные части в любом случае.В качестве общеизвестного примера возьмем Java или .NET: «среда выполнения» - это собственный двоичный файл, который выполняет байт-код java (или msil).

Существуют некоторые компиляторы COBOL, генерирующие промежуточный код, который на самом деле переносим иможет использоваться с «родной средой выполнения», которую необходимо установить заранее.

Самый простой вариант для вашего случая: возьмите совместимый компилятор и перекомпилируйте исходный код COBOL для этой платформы на этой платформе.Я бы предложил преемника OpenCOBOL: GnuCOBOL , используя официальные двоичные файлы Windows .

...