共有ライブラリーのコンパイルとリンク

新規ユーザー定義の共有ライブラリーに C++ ファイルを作成した後、nzudxcompile コマンドを使用することにより、C++ ファイルをコンパイルします。

このタスクについて

コマンドは /nz/kit/bin/adm ディレクトリーにあります。 コンパイルプロセスでは、ホストとNetezza Performance ServerSPU で実行するオブジェクトファイルを作成します。

共有ライブラリーの C++ ファイルをコンパイルおよびリンクし、それを参照する UDX で使用できるようにします。 ホスト環境および SPU で共有ライブラリーをコンパイルおよびリンクするには、nzudxcompile コマンドを使用します。

注:他のUDXとは異なり、共有ライブラリーのコンパイルと登録を「nzudxcompileコマンドで一度に行うことはできない。 CREATE LIBRARY を使用してライブラリーを登録する必要があります。

mylib という共有ライブラリーをコンパイルおよびリンクするには、以下のようにします。

手順

  1. Netezza Performance Server・ホスト環境のコンパイル済みオブジェクトを作成します:
       nzudxcompile /home/nz/libs/mylib.cpp --host
    -o /home/nz/libs/mylib.o
  2. コンパイル済みオブジェクトをホストの共有ライブラリーにリンクします。
       nzudxcompile --objs /home/nz/libs/mylib.o --host -o
    /home/nz/libs/host/mylib.so
  3. Netezza Performance ServerSPU 環境用のコンパイル済みオブジェクトを作成します:
       nzudxcompile /home/nz/libs/mylib.cpp --spu -o
    /home/nz/libs/mylib.o 
    
  4. コンパイル済みオブジェクトを SPU の共有ライブラリーにリンクします。
       nzudxcompile --objs /home/nz/libs/mylib.o --dynamic --spu
    -o /home/nz/libs/spu/mylib.so
    注意:'--dynamicスイッチは、SPU環境用の共有ライブラリをコンパイルする場合にのみ使用する。

結果

nzudxcompile コマンドにより、以下のオブジェクト・ファイルが作成されます。
mylib.o_x86
Netezza Performance Serverホスト(i386'Linux®プラットフォーム、'x86)用のオブジェクトファイル。
mylib.o_spu10
IBM® Netezza® 100およびNetezza 100モデルのLinuxの Rev10SPus 用のオブジェクトファイルです。

次の作業

コンパイル済みオブジェクト・ファイルを作成したら、他の UDX が依存関係としてライブラリを指定できるように、Netezza Performance Serverシステムにライブラリを登録する必要があります。