アプリケーションのコンパイルおよびリンク

Windows上と、Linux上またはUNIX上でのCアプリケーションのコンパイルおよびリンクの方法について説明します。

Windowsでのアプリケーションのコンパイルおよびリンク

WindowsでTimesTenアプリケーションをコンパイルする方法について説明します。ODBCのインクルード・ファイルの場所を指定する必要はありません。これらのファイルは、Microsoft Visual C++に含まれています。ただし、/Iコンパイラ・オプション設定で、TimesTen includeファイルの場所を指定する必要があります。

「TimesTenのインクルード・ファイル」を参照してください。

適切なライブラリを次のようにリンクします。

  • ネイティブのWindowsドライバ・マネージャodbc32.libに直接リンクします

  • または、TimesTenドライバのいずれかに直接リンクします。

    • 直接モードの場合: tten221.libおよびttdv221.lib

    • クライアント/サーバー・モードの場合: ttclient221.lib

TimesTenライブラリをその他のライブラリより前にリンクします。

また、アプリケーションで次のことが実行される必要があります。

  • timesten.h (TimesTenのインクルード・ファイル)を含めます。これにより、標準のODBCファイルも自動的に含まれます。「TimesTenのインクルード・ファイル」を参照してください。

  • TimesTenのファイルを他のインクルード・ファイルより前に含めます。

この例のMakeファイルでは、WindowsシステムでTimesTenアプリケーションを構築する方法が示されています。この例では、timesten_home\install\libLIB環境変数にすでに追加されていることを前提としています(ttenv.batを実行すると追加されます)。

CFLAGS = "/Itimesten_home\install\include"
LIBSDM = ODBC32.LIB
LIBS = tten221.lib ttdv221.lib
LIBSDEBUG = tten221d.lib ttdv221d.lib
LIBSCS = ttclient221.lib

# Link with the ODBC driver manager
appldm.exe:appl.obj
           $(CC) /Feappldm.exe appl.obj $(LIBSDM)

# Link directly with the TimesTen
# ODBC production driver
appl.exe:appl.obj
         $(CC) /Feappl.exe appl.obj\
         $(LIBS)

# Link directly with the TimesTen
# ODBC debug driver
appldebug.exe:appl.obj
              $(CC) /Feappldebug.exe appl.obj\
              $(LIBSDEBUG)

# Link directly with the TimesTen
# ODBC client driver
applcs.exe:appl.obj
           $(CC) /Feapplcs.exe appl.obj\
           $(LIBSCS)

ノート:

  • TimesTenのデフォルトはODBC 3.5です。ODBC 2.5の定義および型を使用するには、コンパイラ設定-DODBCVER=0x0250を使用します。

  • Windowsでは、インストールごとに1つのみTimesTenインスタンスがあり、timesten_homeinstallation_dir\instanceを指します。

  • timesten_home\installディレクトリは、installation_dirへのシンボリック・リンクです。

LinuxまたはUNIXでのアプリケーションの直接コンパイルおよびTimesTenドライバを使用したリンク

LinuxまたはUNIXプラットフォームでTimesTenドライバを使用してTimesTenアプリケーションを直接コンパイルする方法について説明します。

  • TimesTenインストールのincludeディレクトリにあるTimesTenヘッダー・ファイルを使用して、TimesTenアプリケーションをコンパイルします。

  • TimesTen直接ドライバまたはTimesTenクライアント・ドライバとリンクします(これらは共有ライブラリとして提供されます)。

  • TimesTenライブラリをその他のライブラリより前にリンクします。

また、アプリケーションで次のことが実行される必要があります。

  • timesten.h (TimesTenのインクルード・ファイル)を含めます。これにより、標準のODBCファイルも自動的に含まれます。「TimesTenのインクルード・ファイル」を参照してください。

  • TimesTenのファイルを他のインクルード・ファイルより前に含めます。

TimesTen機能を使用している場合にTimesTenのインクルード・ファイルを使用するには、Cコンパイラ・コマンドに次を追加します。

-Itimesten_home/install/include

TimesTen ODBCの直接ドライバとリンクするには、libtten.soライブラリのリンク・コマンドに次を追加します。

-Ltimesten_home/install/lib -ltten

-Lオプションを指定すると、リンカーでライブラリ・ファイル用のTimesTen libディレクトリが検索されます。-lttenオプションを指定すると、TimesTen ODBCの直接ドライバでリンクが行われます。

TimesTen ODBCのクライアント・ドライバとリンクするには、libttclient.soライブラリのリンク・コマンドに次を追加します。

-Ltimesten_home/install/lib -lttclient

AIXでは、アプリケーションとTimesTen ODBCクライアント・ドライバをリンクする場合、リンク・コマンドにはクライアント・ドライバの後にC++ランタイム・ライブラリを含める必要があります(クライアント・ドライバはC++で記述されており、AIXでは自動的にはリンクされないため)。

-Ltimesten_home/install/lib -lttclient -lC_r

「LinuxまたはUNIXでのアプリケーションのコンパイルおよびTimesTenドライバ・マネージャを使用したリンク」で説明されているように、TimesTenドライバ・マネージャを使用してリンクしている場合は、このライブラリを含める必要はありません。

クイック・スタートのsample_codeディレクトリの下のサブディレクトリにあるMakeファイルを使用できます(「TimesTenクイック・スタートおよびサンプル・アプリケーションについて」を参照)、またはこの例を参考にして独自のMakeファイルを作成できます。

CFLAGS = -Itimesten_home/install/include
LIBS = -Ltimesten_home/install/lib -ltten
LIBSDEBUG = -Ltimesten_home/install/lib -lttenD
LIBSCS = -Ltimesten_home/install/lib -lttclient

# Link directly with the TimesTen
# ODBC production driver
appl:appl.o
     $(CC) -o appl appl.o $(LIBS)

# Link directly with the TimesTen ODBC debug driver
appldebug:appl.o
     $(CC) -o appldebug appl.o $(LIBSDEBUG)

# Link directly with the TimesTen client driver
applcs:appl.o
     $(CC) -o applcs appl.o $(LIBSCS)

ノート:

  • TimesTenは、デフォルトではODBC 3.5に対してコンパイルします。ODBC 2.5アプリケーションをコンパイルするには、コンパイル・オプション設定-DODBCVER=0x0250を使用します。

  • アプリケーションをデバッグTimesTen ODBCドライバに直接リンクするには、リンク行に-lttenのかわりに-lttenDを指定します。

LinuxまたはUNIXでのアプリケーションのコンパイルおよびTimesTenドライバ・マネージャを使用したリンク

この項では、アプリケーションをTimesTenドライバ・マネージャ(Windowsではサポートされていない)とリンクするためのコマンドについて説明します。

前述の「LinuxまたはUNIXでのアプリケーションの直接コンパイルおよびTimesTenドライバを使用したリンク」の項の説明は、TimesTenの直接ドライバおよびクライアント/サーバー・ドライバに関する特定の説明に関してはいくつか例外がありますが、TimesTenドライバ・マネージャ(TTDM)を使用する場合にも当てはまります。ただし、次のことに留意してください:

  • 通常どおりtimesten.hを含めます。さらに、通常どおり他のTimesTenヘッダー・ファイルも含めます。アプリケーションでXLAを使用する場合は、tt_xla.hを含めます。アプリケーションでTimesTenユーティリティAPIを使用する場合は、tt_utillib.hおよびttutil.hを含めます。

  • ODBCの直接ドライバまたはクライアント/サーバー・ドライバのかわりに、TTDMライブラリlibttdrvmgr.soとリンクします。他のTimesTenライブラリとリンクしないでください。

  • サードパーティのドライバ・マネージャ・ライブラリとリンクしないでください。

例:

-Ltimesten_home/install/lib -lttdrvmgr

Makefileでは、次のようになります:

CFLAGS = -Itimesten_home/install/include
LIBTTDM = -Ltimesten_home/install/lib -lttdrvmgr
# Link with TTDM
applcs:appl.o
     $(CC) -o applcs appl.o $(LIBTTDM)