サポートされているすべてのオペレーティング・システム用に、C のユーザー定義拡張機能をコンパイルします。
独自のユーザー定義ノード、パーサー、およびユーザー出口を C によって作成する場合、それらをターゲット・ブローカーが稼働しているオペレーティング・システム上でコンパイルしてください。 ノードとパーサーの両方についてサンプルが提供され、サンプル・ノード・ファイルおよびサンプル・パーサー・ファイルで説明されています。 ここにある指示を使用して、サンプルをコンパイルしてください。 独自の拡張機能を作成する場合、以下のトピックを参照してください。
これらの指示では、提供されるサンプルのファイル名を使用しています。 独自のユーザー定義拡張機能をコンパイルする場合は、自分のファイル名に置き換えてください。
C で書かれたユーザー定義拡張機能をコンパイルする場合には、互換性のあるコンパイラーが必要です。 サポートされるコンパイラーについての詳細は、オプションのソフトウェア・サポートを参照してください。
サポートされている各オペレーティング・システム上でユーザー定義拡張機能のソースをコンパイルし、実行可能ファイルを作成します。このファイルは、ブローカーがユーザー定義拡張機能をインプリメントするために呼び出すファイルです。 Linux、UNIX、および z/OS® システムの場合、このファイルはロード可能実装ライブラリー (LIL) ファイルで、Windows システムの場合にはダイナミック・ロード・ライブラリー (DLL) ファイルです。
ユーザー定義ノードやパーサーを組み込むために作成するライブラリーには、ブローカーがそれらをロードできるようにするため、すべてのオペレーティング・システム上で .lil という拡張子がなければなりません。 ユーザー出口が含まれるライブラリーには、すべてのオペレーティング・システム上で .lel という拡張子がなければなりません。 このトピックでの例には、拡張子 .lil のライブラリーが示されています。
使用するプログラムで必要となることのあるコンパイルおよびリンクの使用可能なオプションについての詳細は、使用するコンパイラーの文書を参照してください。
ユーザー定義拡張のソース・コードがあるディレクトリーまでナビゲートし、以下のオペレーティング・システムごとの指示に従ってください。
C で書かれたユーザー定義拡張機能をコンパイルする場合には、サポートされるコンパイラーを使用してください。
以下の指示は、64 ビット実行グループ用の拡張機能をコンパイルするためのものです。 32 ビット実行グループはサポートされません。
xlc_r -q64 \
-I. \
-I/install_dir/include/plugin ¥
-c SwitchNode.c ¥
-o SwitchNode.o
xlc_r -q64 \
-I. \
-I/install_dir/include/plugin ¥
-c TransformNode.c ¥
-o TransformNode.o
xlc_r -q64 \
-I. \
-I/install_dir/include/plugin ¥
-c BipSampPluginUtil.c ¥
-o BipSampPluginUtil.o
xlc_r -q64 \
-I. \
-I/install_dir/include/plugin ¥
-c Common.c ¥
-o Common.o
xlc_r -q64 \
-I. \
-I/install_dir/include/plugin ¥
-c NodeFactory.c ¥
-o NodeFactory.o
xlc_r -q64 \
-qmkshrobj ¥
-bM:SRE ¥
-bexpall ¥
-bnoentry ¥
-o SwitchNode.lil SwitchNode.o ¥
BipSampPluginUtil.o Common.o NodeFactory.o ¥
-L /install_dir/lib ¥
-l imbdfplg
chmod a+r SwitchNode.lil
C で書かれたユーザー定義拡張機能をコンパイルする場合には、サポートされるコンパイラーを使用してください。
以下の指示は、64 ビット実行グループ用の拡張機能をコンパイルするためのものです。 32 ビット実行グループはサポートされません。
cc +z +e +DD64 -D_HPUX_SOURCE -DTHREADS -D_REENTRANT -Ae ¥
-I. \
-I/install_dir/include ¥
-I/install_dir/include/plugin ¥
-c BipSampPluginUtil.c ¥
-o output_dir/BipSampPluginUtil.o
cc +z +e +DD64 -D_HPUX_SOURCE -DTHREADS -D_REENTRANT -Ae ¥
-I. \
-I/install_dir/include ¥
-I/install_dir/include/plugin ¥
-c Common.c ¥
-o output_dir/Common.o
cc +z +e +DD64 -D_HPUX_SOURCE -DTHREADS -D_REENTRANT -Ae ¥
-I. \
-I/install_dir/include ¥
-I/install_dir/include/plugin ¥
-c NodeFactory.c ¥
-o output_dir/NodeFactory.o
cc +z +e +DD64 -D_HPUX_SOURCE -DTHREADS -D_REENTRANT -Ae ¥
-I. \
-I/install_dir/include ¥
-I/install_dir/include/plugin ¥
-c SwitchNode.c ¥
-o output_dir/SwitchNode.o
cc +z +e +DD64 -D_HPUX_SOURCE -DTHREADS -D_REENTRANT -Ae ¥
-I. \
-I/install_dir/include ¥
-I/install_dir/include/plugin ¥
-c TransformNode.c ¥
-o output_dir/TransformNode.o
ld -b ¥
-o output_dir/SwitchNode.lil ¥
output_dir/BipSampPluginUtil.o ¥
output_dir/Common.o ¥
output_dir/NodeFactory.o ¥
output_dir/SwitchNode.o ¥
output_dir/TransformNode.o ¥
-L install_dir/lib ¥
-L install_dir/xml4c/lib ¥
-L install_dir/merant/lib ¥
-L install_dir/jre16/lib/IA64N¥
-L install_dir/jre16/lib/IA64N/server ¥
-l imbdfplg
chmod a+r output_dir/SwitchNode.lil
C で書かれたユーザー定義拡張機能をコンパイルする場合には、サポートされるコンパイラーを使用してください。
Linux (POWER® 上でプログラムをコンパイルするときに、 ダイナミック・リンクを使用してグローバル・オフセット表のサイズが制限されないようにしたい場合は、 オプション -fpic を -fPIC に置き換えます。
以下の指示は、Linux (x86-64)、Linux (POWER、および Linux (System z® 上の 64 ビット実行グループ用の拡張機能をコンパイルするためのものです。 32 ビット実行グループはこれらのプラットフォームでサポートされません。 Linux (x86) 上で 32 ビット実行グループの拡張機能をコンパイルするには、 コンパイルおよびリンクの例で、-m64 を -m32 に置き換えます。Linux (POWER の拡張機能をコンパイルするには、コンパイルおよびリンクの例に -O2 パラメーターを組み込みます。
g++ -c -m64 -Wall -Wno-format-y2k -fpic ¥
-I. \
-I/install_dir/include ¥
-I/install_dir/include/plugin ¥
-DLINUX -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \
TransformNode.c
g++ -c -m64 -Wall -Wno-format-y2k -fpic ¥
-I. \
-I/install_dir/include ¥
-I/install_dir/include/plugin ¥
-DLINUX -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \
SwitchNode.c
g++ -c -m64 -Wall -Wno-format-y2k -fpic ¥
-I. \
-I/install_dir/include ¥
-I/install_dir/include/plugin ¥
-DLINUX -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \
BipSampPluginUtil.c
g++ -c -m64 -Wall -Wno-format-y2k -fpic ¥
-I. \
-I/install_dir/include ¥
-I/install_dir/include/plugin ¥
-DLINUX -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \
Common.c
g++ -c -m64 -Wall -Wno-format-y2k -fpic ¥
-I. \
-I/install_dir/include ¥
-I/install_dir/include/plugin ¥
-DLINUX -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \
NodeFactory.c
g++ -m64 -o samples.lil ¥
TransformNode.o ¥
SwitchNode.o ¥
BipSampPluginUtil.o ¥
Common.o NodeFactory.o ¥
-shared -lc -lnsl -ldl ¥
-L/install_dir/lib -limbdfplg
これらのコマンドでは、 TransformNode オブジェクトと SwitchNode オブジェクトを含む、ファイル samples.lil が作成されます。
C で書かれたユーザー定義拡張機能をコンパイルする場合には、サポートされるコンパイラーを使用してください。
以下は、Solaris (SPARC) 上で 64 ビット実行グループ用の拡張機能をコンパイルすることに関する指示です。32 ビット実行グループはサポートされません。 Solaris (x86-64) 上でデフォルトの 64 ビット実行グループの拡張機能をコンパイルするには、コンパイルの例で、-xarch=v9 を -xarch=amd64 に置き換えます。32 ビット実行グループはサポートされません。
cc -xarch=v9 -mt ¥
-I. \
-I/install_dir/include ¥
-I/install_dir/include/plugin ¥
-c SwitchNode.c ¥
-o output_dir/SwitchNode.o
cc -xarch=v9 -mt ¥
-I. \
-I/install_dir/include ¥
-I/install_dir/include/plugin ¥
-c TransformNode.c ¥
-o output_dir/TransformNode.o
cc -xarch=v9 -mt ¥
-I. \
-I/install_dir/include ¥
-I/install_dir/include/plugin ¥
-c BipSampPluginUtil.c ¥
-o output_dir/BipSampPluginUtil.o
cc -xarch=v9 -mt ¥
-I. \
-I/install_dir/include ¥
-I/install_dir/include/plugin ¥
-c NodeFactory.c ¥
-o output_dir/NodeFactory.o
cc -xarch=v9 -mt ¥
-I. \
-I/install_dir/include ¥
-I/install_dir/include/plugin ¥
-c Common.c ¥
-o output_dir/Common.o
cc -xarch=v9 -xcode=pic32 -mt -G ¥
-o output_dir/SwitchNode.lil ¥
output_dir/SwitchNode.o ¥
output_dir/BipSampPluginUtil.o ¥
output_dir/NodeFactory.o ¥
output_dir/Common.o ¥
-L /install_dir/lib ¥
-l imbdfplg
chmod a+r output_dir/SwitchNode.lil
C で書かれたユーザー定義拡張機能をコンパイルする場合には、サポートされるコンパイラーを使用してください。
SwitchNode.c と BipSampPluginUtil.c の間、さらに -link と /DLL の間に必ずスペースを含めてください。
実際に入力する際は、コマンドを 1 行に入力してください。以下の例では、読みやすくするために行を分割しています。
cl /VERBOSE /LD /MD /Zi /EHsc /I.
/Iinstall_dir¥include¥plugin
SwitchNode.c BipSampPluginUtil.c Common.c
NodeFactory.c TransformNode.c
-link /DLL install_dir¥lib¥imbdfplg.lib
/OUT:SwitchNode.lil
LIB 環境変数を正しく設定した場合には、LIB ファイルへの絶対パスを指定する必要はありません。
C で書かれたユーザー定義拡張機能をコンパイルする場合には、サポートされるコンパイラーを使用してください。
export _CC_STEPS=-1
別の方法として、
次のように、以下の 2 行を MAKE ファイルに追加してエクスポートします。 _CC_STEPS=-1
.EXPORT : _CC_STEPS
最適化されたビルドを作成するには、以下のコマンドの -g の場所に -2 を使用します。
cc -c ¥
-Wc,LP64 -g -W0,langlvl¥(extended¥),EXPORTALL,float¥ieee¥) ¥
-Wc,xplink ¥
-W0,LIST¥(./SwitchNode.lst¥) ¥
-I. -I${install_dir}/include ¥
-I${install_dir}/include/plugin ¥
-I${install_dir}/sample/include ¥
-I${install_dir}/sample/plugin ¥
-o ./SwitchNode.o ./SwitchNode.c
cc -c ¥
-Wc,LP64 -g -W0,langlvl¥(extended¥),EXPORTALL,float¥ieee¥) ¥
-Wc,xplink ¥
-W0,LIST\(./TransformNode.lst\) \
-I. -I${install_dir}/include ¥
-I${install_dir}/include/plugin ¥
-I${install_dir}/sample/include ¥
-I${install_dir}/sample/plugin ¥
-o ./SwitchNode.o ./TransformNode.c
cc -c ¥
-Wc,LP64 -g -W0,langlvl¥(extended¥),EXPORTALL,float¥ieee¥) ¥
-Wc,xplink ¥
-W0,LIST¥(./BipSampPluginUtil.lst¥) ¥
-I. -I${install_dir}/include ¥
-I${install_dir}/include/plugin ¥
-I${install_dir}/sample/include ¥
-I${install_dir}/sample/plugin ¥
-o ./BipSampPluginUtil.o ./BipSampPluginUtil.c
cc -c ¥
-Wc,LP64 -g -W0,langlvl¥(extended¥),EXPORTALL,float¥ieee¥) ¥
-Wc,xplink ¥
-W0,LIST¥(./Common.lst¥) ¥
-I. -I${install_dir}/include ¥
-I${install_dir}/include/plugin ¥
-I${install_dir}/sample/include ¥
-I${install_dir}/sample/plugin ¥
-o ./Common.o ./Common.c
cc -c ¥
-Wc,LP64 -g -W0,langlvl¥(extended¥),EXPORTALL,float¥ieee¥) ¥
-Wc,xplink ¥
-W0,LIST¥(./NodeFactory.lst¥) ¥
-I. -I${install_dir}/include ¥
-I${install_dir}/include/plugin ¥
-I${install_dir}/sample/include ¥
-I${install_dir}/sample/plugin ¥
-o ./NodeFactory.o ./NodeFactory.c
cc ¥
-Wl,DLL,LP64 -g -Wl,p,map -Wl,LIST=ALL,MAP,XREF,REUS=RENT \
-Wl,xplink ¥
-o ./SwitchNode.lil ./SwitchNode.o ./BipSampPluginUtil.o ¥
./Common.o ./NodeFactory.o ¥
${install_dir}/lib/libimbdfplg.x
以下のコマンドを発行することにより、ユーザー定義拡張機能のファイル許可を、グループ読み取りおよび実行に設定します。
chmod a+rx {output_dir}/SwitchNode.lil