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

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

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

注:共有オブジェクトを実行可能プログラムとしてエンタープライズ・サーバで使用する場合は、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 上でビルドする場合のみ必要です。