TAO 1.3.3ビルドメモ
Windows環境でTAO1.3.3のビルドはNGでした。以下にビルドを通すための経過を述べます。なお、ここに記した内容で生成されたライブラリでは実行時にエラーとなります。
TAO.dswに含まれていないプロジェクトが存在し、その含まれていないプロジェクトで生成されるライブラリとリンクするものがあるため、配布のままのTAO.dswではリンク時にエラーが発生します。
※TAOACE.dswには含まれているので、TAOACE.dswでビルドするとよいでしょう。
そこで、TAO.dswに以下の修正を行います。
TAO.dswのMFCビルドは設定が不十分なためビルドすることが出来ない状態になっています。
プロジェクト名 | 設定名 | 内容 |
---|---|---|
TAO DLL | Win32 Release | TAOのORBコアのDLLを生成する |
Win32 Debug | ||
TAO LIB | Win32 Static Release | TAOのORBコアのスタティックリンクライブラリを生成する |
Win32 Static Debug | ||
PortableServer | Win32 Release | POAのDLLを生成する |
Win32 Debug | ||
PortableServer_Static | Win32 Static Release | POAのスタティックリンクライブラリを生成する |
Win32 Static Debug | ||
Messaging | Win32 Release | QoSメッセ-ジングのDLLを生成する |
Win32 Debug | ||
Messaging_Static | Win32 Static Release | QoSメッセ-ジングのスタティックリンクライブラリを生成する |
Win32 Static Debug | ||
IORInterceptor | Win32 Release | Portable InterceptorのDLLを生成する |
Win32 Debug | ||
IORInterceptor_Static | Win32 Static Release | Portable Interceptorのスタティックリンクライブラリを生成する |
Win32 Static Debug | ||
ObjRefTemplate | Win32 Release | ObjRefTemplateのDLLを作成する |
Win32 Debug | ||
ObjRefTemplate_Static | Win32 Static Release | ObjRefTemplateのスタティックリンクライブラリを作成する |
Win32 Static Debug | ||
Valuetype | Win32 Release | ValuetypeのDLLを生成する |
Win32 Debug |
依存関係のメモ
PortableServer | | | | +---+ | | +-------------------+ | | +--------+ IORInterceptor | | | +---------+ | | | | | | | | ObjRefTemplate | | | | | | | | +--------+ | | | | | | | | Valuetype | | |+----+ | | || +----------------+ | || | +---------------------------+ T A O TAO_IDL Compiler | TAO_IDL_BE_DLL | TAO_IDL_FE_DLL
ディレクトリ | ライブラリファイル | 種類 |
---|---|---|
ACE_wrappers\bin\ | TAO.dll TAOd.dll TAO_IORInterceptor.dll TAO_IORInterceptord.dll TAO_Messaging.dll TAO_Messagingd.dll TAO_ObjRefTemplate.dll TAO_ObjRefTemplated.dll TAO_PortableServer.dll TAO_PortableServerd.dll TAO_Valuetype.dll TAO_Valuetyped.dll |
動的リンクライブラリファイル |
ACE_wrappers\TAO\tao | TAO.lib TAOd.lib |
インポートライブラリファイル |
TAOs.lib TAOsd.lib |
スタティックリンクライブラリファイル | |
ACE_wrappers\TAO\tao\IORInterceptor | TAO_IORInterceptor.lib TAO_IORInterceptord.lib |
インポートライブラリファイル |
TAO_IORInterceptors.lib TAO_IORInterceptorsd.lib |
スタティックリンクライブラリファイル | |
ACE_wrappers\TAO\tao\PortableServer | TAO_PortableServer.lib TAO_PortableServerd.lib |
インポートライブラリファイル |
TAO_PortableServers.lib TAO_PortableServersd.lib |
スタティックリンクライブラリファイル | |
ACE_wrappers\TAO\tao\Messaging | TAO_Messaging.lib TAO_Messagingd.lib |
インポートライブラリファイル |
TAO_Messagings.lib TAO_Messagingsd.lib |
スタティックリンクライブラリファイル | |
ACE_wrappers\TAO\tao\ObjRefTemplate | TAO_ObjRefTemplate.lib TAO_ObjRefTemplated.lib |
インポートライブラリファイル |
TAO_ObjRefTemplates.lib TAO_ObjRefTemplatesd.lib |
スタティックリンクライブラリファイル | |
ACE_wrappers\TAO\Valuetype | TAO_Valuetype.lib TAO_Valuetyped.lib |
インポートライブラリファイル |
TAO_Valuetypes.lib TAO_Valuetypesd.lib |
スタティックリンクライブラリファイル |
TAO 1.3.3のビルドにて以下のエラーが発生。
PortableServerのMFC版をビルドするには、IORInterceptor、ObjRefTemplate、Valuetypeの各プロジェクトにMFC版作成用設定を追加してビルドしなくてはなりません。
ACE+5.3.3+TAO-1.3.3+CIAO-0.3.3.tar.bz2を展開
ACE_wrappers/ace/config.hを編集
#define ACE_HAS_STANDARD_CPP_LIBRARY 1 #define ACE_HAS_ANSI_CASTS 1 #include "ace/config-win32.h"
ACEをインストール手順に沿ってビルドし、インストールした。
VC++6.0の共通設定:[ツール]メニュー→[オプション]で[ディレクトリ]タブを開け、
実行可能ファイル、ライブラリファイル、インクルードファイルにACEをインストールした場所を指定。
TAO.dswは壊れているので、TAOACE.dswを読み込み、プロジェクトを個別にビルドする。また、MFCはビルドができないので、MFCは対象から外す。
RTTIを有効にする。
環境変数TAO_ROOTを、ACE_wrappers\TAOディレクトリに設定する。(IDLコンパイル時にorb.idlが見つからない等と怒られるので)
TAO DLL - Win32 Release [エラー0、警告0] TAO DLL - Win32 Debug [エラー0、警告0] Valuetype - Win32 Release [エラー0、警告0] Valuetype - Win32 Debug [エラー0、警告0] ObjRefTemplate - Win32 Release [エラー0、警告0] ObjRefTemplate - Win32 Debug [エラー0、警告0] IORInterceptor - Win32 Release [エラー0、警告0] IORInterceptor - Win32 Debug [エラー0、警告0] TAO_IDL_BE_DLL - Win32 Release [エラー0、警告0] TAO_IDL_BE_DLL - Win32 Debug [エラー0、警告0] TAO_IDL_FE_DLL - Win32 Release [エラー0、警告0] TAO_IDL_FE_DLL - Win32 Debug [エラー0、警告0] TAO_IDL_Compiler - Win32 Release [エラー0、警告0] TAO_IDL_Compiler - Win32 Debug [エラー0、警告0] PortableServer - Win32 Release [エラー0、警告0] PortableServer - Win32 Debug [エラー0、警告0] BiDirGIOP - Win32 Release [エラー0、警告0] BiDirGIOP - Win32 Debug [エラー0、警告0] DynamicAny - Win32 Release [エラー0、警告0] DynamicAny - Win32 Debug [エラー0、警告0] DynamicInterface - Win32 Release [エラー0、警告0] DynamicInterface - Win32 Debug [エラー0、警告0] IFR_Client - Win32 Release [エラー0、警告0] IFR_Client - Win32 Debug [エラー0、警告0] IORManip - Win32 Release [エラー0、警告0] IORManip - Win32 Debug [エラー0、警告0] IORTable - Win32 Release [エラー0、警告0] IORTable - Win32 Debug [エラー0、警告0] Messaging - Win32 Release [エラー0、警告0] Messaging - Win32 Debug [エラー0、警告0] TAO_Strategies - Win32 Release [エラー0、警告0] TAO_Strategies - Win32 Debug [エラー0、警告0] TypeCodeFactory - Win32 Release [エラー0、警告0] TypeCodeFactory - Win32 Debug [エラー0、警告0] Domain - Win32 Release [エラー0、警告0] Domain - Win32 Debug [エラー0、警告0] Security - Win32 Release [エラー0、警告0] Security - Win32 Debug [エラー0、警告0] SSLIOP - Win32 Release [エラー0、警告0] SSLIOP - Win32 Debug [エラー0、警告0]
ここまでで、TAOのコアとなる主要ライブラリ群がビルドできました。
以下は、CORBAおよびTAOのサービス類をビルドします。とりあえずCOSネーミングサービスとCOSイベントサービスを構築します。
SvcUtils - Win32 Release [エラー0、警告0] SvcUtils - Win32 Debug [エラー0、警告0] CosNaming - Win32 Release [エラー0、警告0] CosNaming - Win32 Debug [エラー0、警告0] Naming_Service - Win32 Release [エラー0、警告0] Naming_Service - Win32 Debug [エラー0、警告0] NT_Naming_Service - Win32 Release [エラー0、警告0] NT_Naming_Service - Win32 Debug [エラー0、警告0] CosEvent - Win32 Release [エラー0、警告0] CosEvent - Win32 Debug [エラー0、警告0] CosEvent_Service - Win32 Release [エラー0、警告0] CosEvent_Service - Win32 Debug [エラー0、警告0]