実行形式内の未解決参照の解決方法

CALL "literal"
という形式の COBOL 構文を使用すると、literal が直接参照されます。

システムの実行可能プログラムを作成する場合に、プログラムのリンク時に入口点、 literal が指定された場合のみ、このような参照すべてが確実に結び付けられます。入口点、 literal が指定されないと、literal への参照は解決されず、リンクエラーになります。

未解決の参照は cob -d symb を使用すると解決できます。このように指定してビルドしたシステムの実行可能プログラムでは、symb は実行時に動的にロードされます。

次に例を示します。

cob -x myprog.cbl subprog.cbl -d myref

このように指定すると、指定した COBOL プログラムのどちらかにある myref への参照が解決されます。実行時に myref が呼び出されると、Dynamic Loader が起動され、myref への呼び出しが検索されてロードされます。

未解決の参照が複数ある場合は、cob の -U オプションを使用すると、これらすべてを一度に解決することができます。次に例を示します。

cob -x myprog.cbl subprog.cbl -U

このように指定すると、すべての未解決の参照が解決された状態で、myprog が作成されます。