ヘッダーをスキップ
Oracle TimesTen In-Memory Database TTClassesガイド
リリース11.2.1
B56055-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

2 TTClassesのコンパイル

TTClassesは、TimesTenのインストール時にコンパイルおよび事前構成されます。 TTClassesを再コンパイルするには、make(UNIX)またはnmake(Windows)コマンドを使用します。 この章では、コンパイル・プロセスと、TTClassesのクイック・スタート・デモ・アプリケーションについて説明します。

UNIXでのTTClassesのコンパイル

TTClassesを使用するには、シェル環境変数が適切に設定されている必要があります。 次のいずれかのスクリプトを実行するか、またはログイン初期化スクリプト(.profileまたは.cshrc)でいずれかのスクリプトへのコールを追加します。この場合のinstall_dirは、TimesTenインスタンスのインストール・ディレクトリです。

install_dir/bin/ttenv.sh    (sh/ksh/bash)
install_dir/bin/ttenv.csh   (csh/tcsh)

PATHおよび共有ライブラリのロード・パスが適切に構成されたら、TTClassesディレクトリに移動して、TTClassesを再コンパイルできます。

$ cd install_dir/ttclasses
$ make

WindowsでのTTClassesのコンパイル

Windowsでは、インストール時または実行時に環境変数を設定できます。

install_dir\bin\ttenv.bat

TTClassesを再コンパイルする場合は、ttclassesディレクトリに移動します。この場合のinstall_dirは、TimesTenインスタンスのインストール・ディレクトリです。

install_dir\ttclasses

再コンパイルの前に、PATH、INCLUDEおよびLIB環境変数が適切なVisual Studioディレクトリを指していることを確認してください。 PATH、INCLUDEおよびLIB環境変数を適切に設定するVCVARS32.BAT(Visual C++ 6.0の場合)またはVSVARS32.BAT(Visual Studio .NETの場合)という実行可能なバッチ・ファイルが、Visual Studioのディレクトリ・ツリー内にあります。

Visual Studio .NETを使用している場合は、次のようにして再コンパイルを行います。

install_dir\ttclasses> nmake /f Makefile.vsdotnet

または、VC++ 6.0を使用している場合は、次のようにして再コンパイルを行います。

install_dir\ttclasses> nmake

コンパイルのオプション

TTClassesのコンパイル時には、次のMakeターゲット・オプションを使用できます。

Makeターゲットを指定するには、コマンドラインでMakeターゲット名を使用します。

TTClassesの共有デバッグ・バージョンをビルドするには、次のコマンドを実行します。

(UNIX)

$ make clean shared_debug

(Windows)

install_dir\ttclasses> nmake clean shared_debug

クライアント/サーバー・モード用のTTClassesのコンパイル

クライアント/サーバー・モード用にTTClassesをコンパイルするには、MakefileCS Makeファイルを使用します。

例2-1は、クライアント/サーバー・バージョンのTTClassesのビルド方法を示しています。

例2-1 クライアント/サーバー・モード用のTTClassesのコンパイル

(UNIX)

$ make -f MakefileCS clean all

(Windows)

install_dir\ttclasses> nmake /f MakefileCS clean all

コンパイル後のTTClassesのインストール(UNIXのみ)

コンパイルの後、TimesTenインスタンスの全ユーザーがTTClassesを使用できるようにするために、ライブラリをインストールします。TTClassesをインストールするにはTTClassesをコンパイルする場合と異なる権限が必要なため、このステップはコンパイルには含まれません。

例2-2は、UNIXまたはLinuxシステムへTTClassesライブラリをインストールする手順を示しています。 Microsoft Windowsでは、コンパイル後にインストールが自動的に行われることに注意してください。

例2-2 TTClassesライブラリのインストール

$ cd install_dir/ttclasses
$ make install

TTClassesコンパイラ・マクロ

ほとんどのユーザーは、TTClassesのMakeファイルを操作する必要はありません。TTClassesのMakeファイルを手動で変更する必要がある場合は、TTClassesコンパイラ・マクロ用のフラグをMakeファイルに追加します。UNIXでは-Dflagnameを、Windowsでは/Dflagnameを追加します。

この項では、次のコンパイラ・マクロについて説明します。

「プラットフォーム固有のコンパイラ・マクロ」も参照してください。

TTEXCEPT: C++例外のスロー

TTClassesにC++例外をスローさせるには、-DTTEXCEPTフラグを使用してTTClassesをコンパイルします。 すべてのTTClasses関数コールの前後にtry/catchブロックを配置し、TTStatus型の例外を捕捉します。 「TTStatus」を参照してください。

C++ I/Oストリームのフラグ: TTC_USE_STRINGSTREAM、USE_OLD_CPP_STREAMS

C++ストリームには複数のタイプがあり、それぞれに互換性はありません。 TimesTenは2つの関連フラグを提供します。 アプリケーションの中で使用するストリームの型によって、次のように、使用するフラグが決定したり、またはいずれのフラグも使用しないことが決定します。

  • 最新ではないが、比較的新しい型のストリームの場合(<iostream>を含め、ostrstreamクラスを使用する)、いずれのフラグも使用しません。 これは、ほとんどのプラットフォームおよびコンパイラのデフォルトです。

  • 最新の型のストリームの場合(<iostream>を含め、ostringstreamクラスを使用する)、TTC_USE_STRINGSTREAMフラグを使用します。

  • 古い型のストリームの場合(<iostream.h>を含め、ostrstreamクラスを使用する)、USE_OLD_CPP_STREAMSフラグを使用します。 これは、一部の古いプラットフォームおよびコンパイラのデフォルトです。

TTClasses Makeファイルを確認して、いずれかのフラグが設定されているかどうかを調べます。 フラグが適切に設定されていない場合、Makeファイルを適切に更新して、TTClassesを再コンパイルした後、以前のTTClassesライブラリ・ファイルを再コンパイルしたものに置き換えます。

詳細を次の項で説明します。

フラグを使用しない: ostrstreamを使用するC++ I/Oストリーム・コードの場合

前述のとおり、<iostream>を含み、ostrstreamクラスを使用するC++ I/Oストリーム・コードを使用する場合は、TTC_USE_STRINGSTREAMフラグもUSE_OLD_CPP_STREAMSフラグも設定しないでください。 TTClasses Makeファイルにいずれかのフラグが設定されている場合は、行を削除して、TTClassesを再コンパイルします。

TTC_USE_STRINGSTREAM: ostringstreamを使用する最新のC++ I/Oストリームの場合

このコンパイラ・フラグは、最新のC++ストリーム型およびostringstreamクラスを確実にサポートするC++コンパイラで使用するためのものです。 プログラムで最新のストリーム型を使用する場合、TTClassesは-DTTC_USE_STRINGSTREAM設定でコンパイルする必要があります。 これによって、プログラム・コードとの互換性を保つために、TimesTenでostringstreamおよび<iostream>を使用できるようになります。

また、プログラムで最新のC++ストリームを使用する場合、USE_OLD_CPP_STREAMSフラグは、設定しないでください。 TTClasses Makeファイルに間違った設定があった場合は、修正してTTClassesを再コンパイルします。


注意:

バージョン3.2以上のgccでは、デフォルトでTTC_USE_STRINGSTREAMフラグがinstall_dir/include/ttclasses/TTIostream.hに設定されています。

USE_OLD_CPP_STREAMS: 古いC++ I/Oストリーム・コードの場合

このコンパイラ・フラグは、<iostream>をサポートしない、古いC++コンパイラのためのものです。 プログラムで古いC++ストリームを使用する場合(<iostream.h>を含め、ostrstreamを使用する)、プログラム・コードとの互換性を維持するために、TTClassesは-DUSE_OLD_CPP_STREAMS設定でコンパイルする必要があります。

また、プログラムで古いC++ストリームを使用する場合、TTC_USE_STRINGSTREAMフラグは、設定しないでください。 TTClasses Makeファイルに間違った設定があった場合は、修正してTTClassesを再コンパイルします。

TTDEBUG: 追加のデバッグおよびエラー・チェック・ロジックの生成

追加のデバッグ情報を生成するには、-DTTDEBUGを使用してTTClassesをコンパイルします。この追加情報はパフォーマンスを多少低下させるため、このフラグは(本番システムではなく)開発システムでのみ使用してください。

TT_64BIT: TTClassesの64-bitのTimesTenでの使用

64-bitのTimesTenアプリケーションを作成する場合は、-DTT_64BITを使用してTTClassesをコンパイルします。

64-bitのTTClassesは、AIX、HP-UX、Solaris、Red Hat LinuxおよびTru64でテスト済であることに注意してください。

プラットフォーム固有のコンパイラ・マクロ

次のコンパイラ・マクロは、プラットフォームまたはコンパイラの特定の組合せに固有のものです。これらのコンパイラ・マクロを手動で指定する必要はありません。 これらが使用されるかどうかは、configureプログラムで選択されたMakeファイルによって決定されます。

GCC

任意のプラットフォームでgccを使用する場合、-DGCCフラグを使用してTTClassesをコンパイルします。

HPUX

HP-UX上でコンパイルする場合は、-DHPUXフラグを使用してTTClassesをコンパイルします。

TimesTen TTClassesデモについて

C++環境を構成した後、TimesTenクイック・スタート・デモ・アプリケーションをコンパイルおよび実行することで、すべてが適切に設定されたことを確認できます。 クイック・スタートのようこそページ(install_dir/quickstart.html)のサンプル・プログラムの下にあるリンクで、次の事項の説明を参照してください。