8.3.4 複数接続機能を使用する場合のコンパイルとリンケージ
- 〈この項の構成〉
(1) マルチスレッドの場合
OLTP用でない通常のUAPで複数接続機能を使用する場合の,UAPのコンパイルとリンケージについて説明します。
(a) UNIX環境の場合
複数接続機能使用時にリンケージするライブラリについては,表「コンパイル,及びリンケージをするときに指定するライブラリ(OLTP下でない場合(UNIX環境))」及び表「コンパイル,及びリンケージをするときに指定するライブラリ(OLTP下の場合(UNIX環境))」を参照してください。なお,マルチスレッドを利用するためにリンケージしなければならないライブラリについては,各OSのマニュアルを参照してください。
-
C言語の例
C言語の場合の例を次に示します。なお,下線で示す部分は,HiRDBのインストールディレクトリです。
- <例1>HP-UXで,UAPと共用ライブラリをリンクする場合
-
-
ポストソースファイルの名称がsampleで,実行形式ファイルの名称を指定しない場合
aCC -Ae -mt -I /HiRDB/include sample.c -L/HiRDB/client/lib -lzcltk
-
- <例2>HP-UXで,UAPと64ビットモード用の共用ライブラリをリンクする場合
-
-
ポストソースファイルの名称がsampleで,実行形式ファイルの名称を指定しない場合
aCC -Ae -mt +DD64 -I /HiRDB/include sample.c -L/HiRDB/client/lib -lzcltk64
-
- <例3>Linuxで,UAPと共用ライブラリをリンクする場合
-
-
ポストソースファイルの名称がsampleで,実行形式ファイルの名称を指定しない場合
cc -I/HiRDB/include sample.c -D_REENTRANT -L/HiRDB/client/lib/ -lzcltk -lthread
-
- <例4>AIXで,UAPと共用ライブラリをリンクする場合
-
-
ポストソースファイルの名称がsampleで,実行形式ファイルの名称を指定しない場合
xlc_r -I/HiRDB/include sample.c -L/HiRDB/client/lib/ -lzclt6k
-
- <例5>AIXで,UAPと64ビットモード用の共用ライブラリをリンクする場合
-
-
ポストソースファイルの名称がsampleで,実行形式ファイルの名称を指定しない場合
xlc_r -I/HiRDB/include sample.c -q64 -L/HiRDB/client/lib/ -lzclt6k64
-
-
COBOL言語の例
COBOL言語の場合,マルチスレッドに対応したバージョン(03-01以降)のCOBOL85コンパイラが必要となります。
コンパイル時には,-Mtオプション(POSIXスレッドの場合は-Mpも必要)を指定します。-Mtオプションを指定してコンパイルしたオブジェクトと,指定しないでコンパイルしたオブジェクトをリンクすると,動作は保証されません。COBOL言語の場合のコンパイルについては,マニュアル「COBOL85 使用の手引」を参照してください。
COBOL言語の場合の例を次に示します。なお,下線で示す部分は,HiRDBのインストールディレクトリです。
- <例1>HP-UXでカーネルスレッドを使用する場合
-
-
ポストソースファイルの名称がsampleで,実行形式ファイルの名称を指定しない場合
setenv CBLLIB /HiRDB/include ccbl -Mt -Mp sample.cbl -L/HiRDB/client/lib/ -lzcltk -lpthread
-
- <例2>Linuxで,POSIXスレッド用のUAPと共用ライブラリをリンクする場合
-
-
ポストソースファイルの名称がsampleで,実行形式ファイルの名称を指定しない場合
setenv CBLLIB /HiRDB/include ccbl -Mt -Mp sample.cbl -L/HiRDB/client/lib/ -lcltk -lpthread
-
- <例3>AIXで,POSIXスレッド用のUAPと共用ライブラリをリンクする場合
-
-
ポストソースファイルの名称がsampleで,実行形式ファイルの名称を指定しない場合
setenv CBLLIB /HiRDB/include ccbl -Mt -Mp sample.cbl -L/HiRDB/client/lib/ -lzclt6k -lpthread
-
(b) Windows環境の場合
CLTDLL.LIBの代わりに,PDCLTM32.LIBをリンケージします。なお,OLTP下でX/Openに従ったAPIを使用したUAPの場合,PDCLTXM.LIBをリンケージします。
-
C言語の場合
ここでは,Microsoft Visual C++ Version 4.2を前提として説明します。プロジェクトメニューから「設定」を選択して,各項目を設定します。「設定」で設定する項目を次の表に示します。マルチスレッドを利用するときに,リンケージする必要があるライブラリについては,各OSのマニュアルを参照してください。
項 目 |
カテゴリ |
カテゴリの設定 |
設 定 値 |
---|---|---|---|
コンパイラ |
コード生成 |
構造体メンバのアライメント |
8バイト |
使用するランタイムライブラリ |
マルチスレッドDLL |
||
プリプロセサ |
インクルードファイルのパス |
\HIRDB\INCLUDE |
|
リンカ |
インプット |
ライブラリ |
\HIRDB\LIB\PDCLTM32.LIB |
-
COBOL言語の場合
COBOL言語の場合,マルチスレッドに対応したバージョンのCOBOL85コンパイラが必要となります。ここでは,COBOL85 Version 5.0を前提に説明します。
コンパイル時には,コンパイラオプションダイアログボックスで-Mtオプションを指定します。-Mtオプションを指定してコンパイルしたオブジェクトと,指定しないでコンパイルしたオブジェクトをリンクすると,動作は保証されません。COBOL言語の場合のコンパイルについては,マニュアル「COBOL85 操作ガイド」を参照してください。
「オプション」メニューで設定する項目を次の表に示します。
サブメニュー |
ダイアログ |
設定項目 |
設定値 |
---|---|---|---|
コンパイラ |
COBOL85コンパイラオプション |
COBOL85コンパイラオプション |
-Mtの項目をチェック |
環境変数設定 |
CBLLIB=C:\HIRDB\INCLUDE |
||
リンカ |
リンカオプションの設定 |
インポート/ユーザ指定ライブラリ |
C:\HIRDB\LIB\PDCLTM32 |
(2) シングルスレッドの場合
シングルスレッドのUAPで複数接続機能を使用する場合の,コンパイルとリンケージの方法について説明します。なお,ここではHP-UXを例に説明します。
(a) HP-UX版でのコンパイルとリンケージ
-
C言語の例
C言語の場合の例を次に示します。なお,下線で示す部分は,HiRDBのインストールディレクトリです。
- <例1>(共用ライブラリの場合)
-
-
ポストソースファイルの名称がsampleで,実行形式ファイルの名称を指定しない場合
aCC -Ae -I /HiRDB/include sample.c -L/HiRDB/client/lib -lzclts
-