共有可能ライブラリの作成

Open PL/I を使用して、次のオペレーティング システム上に共有可能ライブラリを作成することができます。

共有可能ライブラリに含められるコードを作成するには、-pic オプションを使用して、位置に依存しないコードを作成するように Open PL/I に指示する必要があります (AIX は除く)。AIX 上では、すべての Open PL/I コードが位置に依存しないため、-pic オプションは必要ありません。位置に依存しないコードとしてオブジェクト ファイルを生成したら、次に示すコマンドを使用して、そのオブジェクト ファイルを共有可能ライブラリにリンクしてください。また、dllmain.o にもリンクする必要があります。

注: 共有オブジェクトを実行可能プログラムとして Enterprise Server で使用する場合は、PLI の "MAIN" プロシージャと共有オブジェクトの名前を同じにすることが重要です。そうしないと、エンタープライズ サーバーは .so をロードしません。

Solaris 2 または UNIX SVR4 の場合:

ld -G -o NEWSHARE.so newshare.o x1.o x2.o x3.o  $MFPLI_PRODUCT_DIR/lib/dllmain.o $MFPLI_PRODUCT_DIR/lib/noofm.o $MFPLI_PRODUCT_DIR/lib/nojw.o -lmf -L$MFPLI_PRODUCT_DIR/lib

AIX の場合

ld -o NEWSHARE.so newshare.o x1.o x2.o x3.o -bE:newshare.exp -bM:SRE -brtl $MFPLI_PRODUCT_DIR/lib/dllmain.o $MFPLI_PRODUCT_DIR/lib/noofm.o $MFPLI_PRODUCT_DIR/lib/nojw.o -lmfnso -L$MFPLI_PRODUCT_DIR/lib                                                  

エクスポート ファイルに MFOPENPLIINIT および MFOPENPLITERM を追加する必要があります。

Red Hat および SUSE Linux の場合:

ld -shared -o NEWSHARE.so newshare.o x1.o x2.o x3.o $MFPLI_PRODUCT_DIR/lib/dllmain.o $MFPLI_PRODUCT_DIR/lib/noofm.o $MFPLI_PRODUCT_DIR/lib/nojw.o -melf_i386 -lmf -L$MFPLI_PRODUCT_DIR/lib
注: -melf_i386 コマンドは、64 ビットの Red Hat または SUSE Linux 上でビルドする場合のみ必要です。