入口点

複数の COBOL プログラムを連結して、1 つの呼び出し可能な共有オブジェクトにすることができます。この方法だと、COBOL プログラム間の参照はすべて直接参照を使って解決することができます。これだと、dynamic loader を使って検索してから他のモジュールをロードする必要がないため効率的です。次に例を示します。

cob -z myprog.cbl subprog.cbl entry.cbl

このように指定すると、すべての COBOL プログラムがコンパイル、およびリンクされ、myprog.so が作成されます。主入口点は myprog です。これは最初に指定された COBOL プログラム、myprog.cbl の主入口点です。

作成された呼び出し可能な共有オブジェクトの名前は、cob の -o フラグを使用して指定することができます。次に例を示します。

cob -zo entry.so myprog.cbl subprog.cbl entry.cbl

このように指定すると、すべての COBOL プログラムがコンパイル、およびリンクされ、entry.so が作成されます。 呼び出し可能な共有オブジェクトの基本名 entry が主入口点となります。つまり、entryentry.cbl の主入口点となります。

入口点も、cob に -e オプションを使って指定できます。この機能は、作成したアプリケーションの名前が、ソースプログラムのファイル名と異なる場合に役立ちます。次に例を示します。

cob -zo myapp.so myprog.cbl subprog.cbl entry.cbl -e entry

このように指定すると、すべての COBOL プログラムがコンパイル、およびリンクされ、myapp.so が作成されます。 主入口点には entry が指定されています。これは、entry.cbl の主入口点です。-e オプションを使用すると、どんな COBOL プログラムのどんな入口点でも指定できます。

-e オプションを指定しないと、呼び出し可能な共有オブジェクトの基本名が、主入口点として使用されます。主入口点が実行時に検出されないと、呼び出し可能な共有オブジェクトはロードされず、実行時ロードエラーになります。