Статическая ссылка OpenCOBOL на несколько файлов .cob - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь статически связать два файла COBOL вместе, используя GnuCobol (Windows 10), следуя приведенному ниже примеру: https://open -cobol.sourceforge.io / исторический / open-cobol / Static-Linking.html но, похоже, не может заставить его работать.

Я выполняю следующее:

cobc -free -c InterpFunc.cob
cobc -free -c -fmain Integrator.cob 
cobc -x -o .\\dist\\integrator Integrator.o InterpFunc.o

Файлы '.o' компилируются правильно, но двоичный файл никогда не собирается со следующими ошибками:

H:\Programs\COBAL\cobc\bin\cobc.exe: unrecognized option '-fmain'
h:/programs/cobal/cobc/bin/../lib/gcc/mingw32/6.3.0/../../../libmingw32.a(main.o):(.text.startup+0xa0): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status
The terminal process terminated with exit code: 1

Я пробовал несколько разных вещей, таких как опускание -fmain или опускание -x, но, похоже, все выдают разные ошибки.

Isвозможно, это проблема с настройкой моего компилятора / системы, или я неправильно понимаю, как статически связывать файлы?

1 Ответ

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

Я совершенно уверен, что вы не используете компилятор, соответствующий этой старой документации (имеющий "исторический" в своем URL).Я совершенно уверен, что это сработает так, как в текущем руководстве написано:

Самый простой способ объединения нескольких файлов - это собрать их в один исполняемый файл.

Один из способов - это скомпилировать все файлы одной командой:

$ cobc -x -o prog main.cob subr1.cob subr2.cob

Другой способ - скомпилировать каждый файл с параметром -c и связать их в конце.> Программа верхнего уровня должна быть скомпилирована с опцией -x.

$ cobc -c subr1.cob
$ cobc -c subr2.cob
$ cobc -c -x main.cob
$ cobc -x -o prog main.o subr1.o subr2.o
...