ページの先頭行へ戻る
Interstage Application Server アプリケーション作成ガイド(CORBAサービス編)

11.5.3 ライブラリ作成時の注意事項

(1) インタフェースが依存関係にある場合(C++マッピング)

  別々のライブラリとして実装するインタフェース間で、一方のインタフェースをもう一方のインタフェースでパラメタやデータ型のメンバとして使用する場合は、ライブラリの作成時に注意が必要です。

1: IDL定義
  interface A {
      ... 
  };
  interface B {
      long  op1(  in  A  param  );      /* インタフェースAを使用 */
      ... 
  };

  インタフェースBのライブラリ作成時には、-lオプションでAのライブラリ名を指定する必要があります。

CC -G -Kpic -o Bのライブラリ名 オブジェクトファイル(*.o) ... -l Aのライブラリ名

gcc -shared -fPIC -o Bのライブラリ名 オブジェクトファイル(*.o) ... -l Aのライブラリ名

  また、アプリケーションの実行時にはAのライブラリが環境変数LD_LIBRARY_PATHに含まれている必要があります。

2: IDL定義
  interface C {
          long  op1( in D param );        /* インタフェースDを使用 */
  };
  interface D {
          long  op2( in C param );        /* インタフェースCを使用 */
  };

  インタフェースをパラメタやでデータ型のメンバとして相互に使用する場合は、インタフェースCとDを実装するライブラリは1つのライブラリとして作成する必要があります。