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

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つのライブラリとして作成する必要があります。