「COBOL」C から OpenCOBOL を呼び出す

OpenCOBOL を C から呼び出してみました。
内容としては、以下のドキュメントに書いてあるものそのままです。
まぁ、忘れないようにメモ。

・OpenCOBOL - B-Wiki - UserManual/2_3
http://www.opencobol.org/modules/bwiki/index.php?UserManual%2F2_3

[ 環境情報 ]
CentOS 6.2
OpenCOBOL 2.0
GCC 4.4.7

1. COBOL プログラムの作成 ( hello.cob )

Hello だけ表示する単純なものにしました。

       identification division.
       program-id.    hello.
       environment    division.
       procedure      division..
           display "hello".
           exit program.


2. C プログラムを作成 ( main.c )

#include <stdio.h>
#include <libcob.h>

extern int hello();

void main()
{
  cob_init(0, NULL);

  printf("start\n");
  hello();
  printf("end\n");
}


3. コンパイル

ドキュメント通りのコマンドを実行する。

gcc -c `cob-config --cflags` main.c
cobc -c -static hello.cob
cobc -x -o hello hello.o main.o

上記実行ファイル hello が作成される。以下の出力が得られればとりあえず成功。

./hello
start
hello
end

以上です。


■ 備考

COBOL プログラムの最後を "stop run." としてしまっててかなりはまりました。
これだと、COBOL プログラムから制御が返らない?とかなんとかで ( 詳細は全くわかりません )、
上記のプログラムだと「end」の出力が得られません。
きっと、COBOL 知っている人はすぐわかる事なんでしょうねぇ・・・