Interstage Application Server アプリケーション作成ガイド (CORBAサービス編)
目次 索引 前ページ次ページ

第2章 CORBAアプリケーション開発時の留意事項> 2.2 コンパイル・リンク> 2.2.5 サーバアプリケーションのコンパイル・リンク例 (Solaris OE)

2.2.5.1 Cサーバアプリケーション(スレッドモード)の場合

例1 ( 実行可能ファイルとして作成する場合 )

odsvapl.c:サーバアプリケーションソース
IDL_skel.c:スケルトンソース
odsvapl:サーバアプリケーション実行可能ファイル

% IDLc IDL.idl
% cc -c -D_REENTRANT -DNeedFunctionPrototypes -I/opt/FSUNod/include -o odsvapl.o odsvapl.c
% cc -c -D_REENTRANT -DNeedFunctionPrototypes -I/opt/FSUNod/include -o IDL_skel.o IDL_skel.c
% cc -lthread -lsocket -lnsl -L/opt/FSUNod/lib -lOM -o odsvapl odsvapl.o IDL_skel.o

例2 ( 共有オブジェクトとして作成する場合 )

odsvapl.c:サーバアプリケーションソース
IDL_A_B_skel.c:スケルトンソース
libA_B.so:サーバアプリケーション共有オブジェクト

% cat IDL.idl
module A {
  interface B {
    :
  }
}
% IDLc -dy IDL.idl
% cc -c -D_REENTRANT -DNeedFunctionPrototypes -I/opt/FSUNod/include -o odsvapl.o odsvapl.c
% cc -c -D_REENTRANT -DNeedFunctionPrototypes -I/opt/FSUNod/include -o IDL_A_B_skel.o IDL_skel.c
% cc -G -Kpic -lthread -lsocket -lnsl -L/opt/FSUNod/lib -lOM -o libA_B.so odsvapl.o IDL_A_B_skel.o

使用可能なコンパイラについては“使用上の注意”の“アプリケーション開発時に必要なソフトウェア”を参照してください。

スレッドライブラリ(libthread.so)は、他のライブラリ群の中で必ず先頭にくるよう指定してください。リンク後、lddコマンドによりシステムライブラリ"libc.so" より上方に"libthread.so" がリンクされていることを確認してください。"libthread.so" が"libc.so" より下方にリンクされている場合、スレッドライブラリが正常に機能せず、アプリケーション誤動作の要因となるため、注意が必要です。


% ldd odsvapl
libthread.so.1 =>   /usr/lib/libthread.so.1
    :            :
libc.so.1 =>      /usr/lib/libc.so.1
    :            :


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005