フェッチ可能なプロシージャとして使用されるプログラムのコンパイルとリンク

UNIX/Linux では、mfplx および ldpli は 2 つの同意のオプション -dll-so をすべてのプラットフォームでサポートします。フェッチ可能なプロシージャとして使用するプログラムをコンパイルするには、次のコマンドを入力します。

mfplx -dll -defext -pic myfetch.pli

または

mfplx -so -defext -pic myfetch.pli
ヒント: UNIX/Linux では、フェッチ可能なプロシージャとして使用するプログラムをコンパイルするとき、-pic コンパイラ オプションを使用します。

フェッチ可能なプログラムにサブルーチンが含まれている場合は、構文は次のようになります。

mfpli -defext -pic suba.pli -o suba.obj
mfplx -dll -defext -pic myfetch.pli suba.obj  -o MYFETCH.so

使用しているオペレーティング システムに適切な出力拡張子のコンパイラ オプションを使用します (-dll または -so)。

次のように、-dll または -so オプションを ldpli コマンドで使用できます。

ldpli -so myfetch.obj suba.obj -o MYFETCH.so

出力される実行イメージは、大文字です。デフォルトで、Open PL/I は大文字の外部参照を生成します。たとえば、メイン プログラム fetch myfetch; に含まれるソース文は、実行可能ファイル MYFETCH.so を探します。myfetch.so (小文字) としてリンクされる場合には見つからず、ONCODE 9250 がトリガーされます。

注: コンパイラ オプション -mvs、-ims、-cics は、OPTIONS(MAIN) プログラムにのみ使用してください。-dll または -so の使用は、それが動的にリンクされ呼び出されるサブルーチンであることを意味します。