(1) インタフェースが依存関係にある場合(C++マッピング)
別々のライブラリとして実装するインタフェース間で、一方のインタフェースをもう一方のインタフェースでパラメタやデータ型のメンバとして使用する場合は、ライブラリの作成時に注意する必要があります。
例
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に含まれている必要があります。
例
interface C {
long op1( in D param ); /* インタフェースDを使用 */
};
interface D {
long op2( in C param ); /* インタフェースCを使用 */
};インタフェースをパラメタやでデータ型のメンバとして相互に使用する場合、インタフェースCとDを実装するライブラリは1つのライブラリとして作成する必要があります。