TAO 1.3.3ビルドメモ

Windows環境でTAO1.3.3のビルドはNGでした。以下にビルドを通すための経過を述べます。なお、ここに記した内容で生成されたライブラリでは実行時にエラーとなります。

TAO.dswに含まれていないプロジェクトが存在し、その含まれていないプロジェクトで生成されるライブラリとリンクするものがあるため、配布のままのTAO.dswではリンク時にエラーが発生します。
※TAOACE.dswには含まれているので、TAOACE.dswでビルドするとよいでしょう。

そこで、TAO.dswに以下の修正を行います。

TAO.dswのMFCビルドは設定が不十分なためビルドすることが出来ない状態になっています。

TAO.dswのビルド対象プロジェクト
プロジェクト名 設定名 内容
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
生成ファイル
TAO生成ライブラリ名(Visual C++)
ディレクトリ ライブラリファイル 種類
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版作成用設定を追加してビルドしなくてはなりません。

2003.9.30リトライ

ソースの展開

ACE+5.3.3+TAO-1.3.3+CIAO-0.3.3.tar.bz2を展開

config.hの編集

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]