WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

C ユーザー定義拡張機能のコンパイル

サポートされているすべてのオペレーティング・システム用に、C のユーザー定義拡張機能をコンパイルします。

始める前に:

独自のユーザー定義ノード、パーサー、およびユーザー出口を C によって作成する場合、それらをターゲット・ブローカーが稼働しているオペレーティング・システム上でコンパイルしてください。 ノードとパーサーの両方についてサンプルが提供され、サンプル・ノード・ファイルおよびサンプル・パーサー・ファイルで説明されています。 ここにある指示を使用して、サンプルをコンパイルしてください。 独自の拡張機能を作成する場合、以下のトピックを参照してください。

これらの指示では、提供されるサンプルのファイル名を使用しています。 独自のユーザー定義拡張機能をコンパイルする場合は、自分のファイル名に置き換えてください。

C で書かれたユーザー定義拡張機能をコンパイルする場合には、互換性のあるコンパイラーが必要です。 サポートされるコンパイラーについての詳細は、オプションのソフトウェア・サポートを参照してください。

ヘッダー・ファイル

以下のヘッダー・ファイルは、C インターフェースを定義します。
BipCni.h
メッセージ処理ノード
BipCpi.h
メッセージ・パーサー
BipCci.h
ノードのパーサーの両方に共通のインターフェース
BipCos.h
プラットフォーム固有の定義

コンパイル

サポートされている各オペレーティング・システム上でユーザー定義拡張機能のソースをコンパイルし、実行可能ファイルを作成します。このファイルは、ブローカーがユーザー定義拡張機能をインプリメントするために呼び出すファイルです。 LinuxUNIX、および z/OS® システムの場合、このファイルはロード可能実装ライブラリー (LIL) ファイルで、Windows システムの場合にはダイナミック・ロード・ライブラリー (DLL) ファイルです。

ユーザー定義ノードやパーサーを組み込むために作成するライブラリーには、ブローカーがそれらをロードできるようにするため、すべてのオペレーティング・システム上で .lil という拡張子がなければなりません。 ユーザー出口が含まれるライブラリーには、すべてのオペレーティング・システム上で .lel という拡張子がなければなりません。 このトピックでの例には、拡張子 .lil のライブラリーが示されています。

使用するプログラムで必要となることのあるコンパイルおよびリンクの使用可能なオプションについての詳細は、使用するコンパイラーの文書を参照してください。

ユーザー定義拡張のソース・コードがあるディレクトリーまでナビゲートし、以下のオペレーティング・システムごとの指示に従ってください。

AIX でのコンパイル

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

HP-Itanium でのコンパイル

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

Linux でのコンパイル

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 が作成されます。

Solaris でのコンパイル

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

Windows でのコンパイル

C で書かれたユーザー定義拡張機能をコンパイルする場合には、サポートされるコンパイラーを使用してください。

SwitchNode.cBipSampPluginUtil.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 ファイルへの絶対パスを指定する必要はありません。

z/OS でのコンパイル

C で書かれたユーザー定義拡張機能をコンパイルする場合には、サポートされるコンパイラーを使用してください。

次のように、_CC_STEPS 変数を -1 に設定して、 プリリンカーまたはリンカーを使用することをリンクに強制します。
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
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        最終更新:
        
        最終更新: 2015-02-28 17:48:09


タスク・トピックタスク・トピック | バージョン 8.0.0.5 | as10000_