第5章 アプリケーションのコンパイル・リンク
5.2 Windows(R) を使用した場合のアプリケーションのコンパイル・リンク
5.2.3 コンパイル・リンクの方法
参照
Visual C++ツールセットの設定方法については、“Microsoft(R)Visual C++のドキュメント”を参照してください。
注意
Windows(R)において、Symfoware/RDBまたはEsqlのインストールにより、アプリケーションのコンパイル・リンクに必要 な環境変数“INCLUDE”および“LIB”が、自動的にシステム環境変数に設定されます。
ユーザ環境変数に“INCLUDE”および“LIB”を設定する場合、それぞれのユーザ環境変数の最後に“;%INCLUDE
%”および“;%LIB%”を設定しシステム環境変数が継承されるようにしてください。
例
ユーザ環境変数“INCLUDE”の場合:~;%INCLUDE%
ユーザ環境変数“LIB”の場合 : ~;%LIB%
作業用のディレクトリ構成
アプリケーションのコンパイル・リンクで参照あるいは作成するファイルを格納するための、作業用のディレクトリ構成を決 めます。ディレクトリ構成は、開発および保守のしやすさを考慮して作成してください。
本章でアプリケーションのコンパイル・リンクの例を示す場合、作業用のディレクトリは以下の構成で作成されているもの とします。
図 5.7 作業用のディレクトリ構成の例
コンパイル・リンクを一括して実行する場合
コンパイル・リンクを一括して実行する場合は、sqlccコマンドまたはsqlcobolコマンドを利用します。
C言語を使用する場合
C言語用のコマンドはsqlccです。sqlccの入力ファイルは、SQL埋込みCプログラムのソースファイルです。このファイル 名には拡張子として“.C”および“.LST”以外を指定する必要があります。出力ファイルは実行可能プログラムです。ま
た、sqlccは作業用のファイルを作成します。作業用のファイルについては、ファイル名が自動的に決定されカレント
ディレクトリに作成されます。C言語の場合は、文字コード系に依存しないロードモジュールが作成されます。文字コー ド系は実行時にクライアント用の動作環境ファイルまたは環境変数で指定します。
sqlccの使用例を以下に示します。
例
“main” を も つSQL埋 込 みCプ ロ グ ラ ム(DEMO01.SC)を コ ン パ イ ル ・ リ ン ク し ま す 。 ロ ー ド モ ジ ュ ー ル は“DEMO01.EXE”とします。
cd C:¥USERS¥DEFAULT¥APPLICATION¥SRC
sqlcc -I C:¥USERS¥DEFAULT¥APPLICATION¥INCLUDE DEMO01.SC /Fe..¥BIN¥DEMO01.EXE (1) (2) (3) (1) インクルードファイルを検索するディレクトリを指定するオプション
(2) SQL埋込みCプログラムのファイル名 (3) clコマンド用のオプション
オプション
sqlccでは、使用するインクルードファイルの配置ディレクトリなどのオプションが指定できます。64ビットで実行する
SQL埋込みCプログラムをコンパイル・リンクする場合は、v9オプションを指定してください。また、マルチスレッド環 境で動作するまたはセションを操作する関数を利用するSQL埋込みCプログラムをコンパイル・リンクする場合は、
Tオプションを指定してください。
参照
オプションの詳細については、“コマンドリファレンス”を参照してください。
SQL埋込みCプログラムのファイル名
SQL埋込みCプログラムで記述されたアプリケーションの、ソースファイルを指定します。
clコマンド用のオプション
sqlccはロードモジュールを作成するために、clコマンドを実行します。このとき、clコマンドに渡すオプションを指定
します。
COBOLを使用する場合
COBOL言語用のコマンドはsqlcobolです。sqlcobolの入力ファイルは、SQL埋込みCOBOLプログラムのソースファイ ルです。このファイル名には拡張子として“.COB”および“.LST”以外を指定する必要があります。出力ファイルはロー ドモジュールです。また、sqlcobolは作業用のファイルを作成します。作業用のファイルについては、ファイル名が自 動的に決定されカレントディレクトリに作成されます。COBOL言語の場合は、コンパイル時に文字コード系を指定しま す。sqlcobolの使用例を以下に示します。
例
主プログラムであるSQL埋込みCOBOLプログラム(DEMO02.SCOB)を、コンパイル・リンクします。ロードモジュー ルは“DEMO02.EXE”とします。
cd C:¥USERS¥DEFAULT¥APPLICATION¥SRC
sqlcobol -I C:¥USERS¥DEFAULT¥APPLICATION¥INCLUDE -L"/OUT:..¥BIN¥DEMO02.EXE"
DEMO02.SCOB -M
(1) (2) (3) (4) (1) インクルードファイルを検索するディレクトリを指定するオプション
(2) リンカ用のオプション
(3) SQL埋込みCOBOLプログラムのファイル名
(4) cobolコマンドまたはcobol32コマンド用のオプション オプション
sqlcobolでは、使用する登録集原文ファイルの配置ディレクトリなどのオプションが指定できます。文字コード系として
UNICODEを使用する場合は、unオプションを指定してください。64ビットで実行するSQL埋込みCOBOLプログラ
ムをコンパイル・リンクする場合は、v9オプションを指定してください。また、マルチスレッド環境で動作するSQL埋込み COBOLプログラムをコンパイル・リンクする場合は、Tオプションを指定してください。
参照
オプションの詳細については、“コマンドリファレンス”を参照してください。
リンカ用のオプション
sqlcobolはロードモジュールを作成するために、リンカを実行します。このとき、リンカに渡すオプションを指定しま す。
SQL埋込みCOBOLプログラムのファイル名
SQL埋込みCOBOLプログラムで記述されたアプリケーションの、ソースファイルを指定します。
cobolコマンドまたはcobol32コマンド用のオプション
sqlcobolはロードモジュールを作成するために、cobolコマンドまたはcobol32コマンドを実行します。このとき、cobol コマンドまたはcobol32コマンドに渡すオプションを指定します。
プレコンパイルとコンパイルを分けて実行する場合
アプリケーションをコンパイル・リンクするために、まずsqlpcコマンドまたはsqlpcobコマンドを利用してプレコンパイルしま す。アプリケーションをプレコンパイルすることによって、アプリケーション中のSQL文をコンパイルし、標準のCプログラムまたは
COBOLプログラムに変換します。その後、clコマンド、cobolコマンドまたはcobol32コマンドを利用してロードモジュール
を作成します。
注意
プレコンパイルによって作成されたソースファイルは、中身を変更しないでください。
C言語を使用する場合
C言語用のプレコンパイルコマンドは、sqlpcです。sqlpcコマンドの入力ファイルは、SQL埋込みCプログラムのソース ファイルです。このファイル名には拡張子として“.C”および“.LST”以外を指定する必要があります。出力ファイルはC プログラムのソースファイルで、ファイル名に拡張子として“.C”が付きます。
参照
sqlpcコマンドの詳細については、“コマンドリファレンス”を参照してください。
プレコンパイルが終了したら、ロードモジュールを作成します。ロードモジュールを作成するためには、clコマンドを実 行します。C言語の場合は、文字コード系に依存しないロードモジュールが作成されます。文字コード系は実行時に クライアント用の動作環境ファイルまたは環境変数で指定します。
C言語を使用した、コンパイル・リンクの例を以下に示します。
例
主プログラムであるSQL埋込みCプログラム(DEMO03.SC)を、コンパイル・リンクします。ロードモジュール は“DEMO03.EXE”とします。
cd C:¥USERS¥DEFAULT¥APPLICATION¥SRC sqlpc DEMO03.SC
(1)
cl /Fe..¥BIN¥DEMO03.EXE F3CWDRV.LIB DEMO03.C (2) (3) (1) SQL埋込みCプログラムのファイル名
(2) RDBライブラリを指定するオプション
(3)プレコンパイル後のSQL埋込みCプログラムのファイル名 COBOLを使用する場合
COBOL用のプレコンパイルコマンドは、sqlpcobです。sqlpcobコマンドの入力ファイルは、SQL埋込みCOBOLプログ ラムのソースファイルです。このファイル名には拡張子として“.COB”および“.LST”以外を指定する必要があります。
出力ファイルはCOBOLプログラムのソースファイルで、ファイル名に拡張子として“.COB”が付きます。
参照
sqlpcobコマンドの詳細については、“コマンドリファレンス”を参照してください。
プレコンパイルが終了したら、ロードモジュールを作成します。
COBOLを使用した、コンパイル・リンクの例を以下に示します。
32ビットで実行するアプリケーション:
ロードモジュールを作成するためには、cobol32コマンドを実行します。
例
主プログラムであるSQL埋込みCOBOLプログラム(DEMO04.COBOL)を、コンパイル・リンクします。ロードモ ジュールは“DEMO04.EXE”とします。
cd C:¥USERS¥DEFAULT¥APPLICATION¥SRC sqlpcob DEMO04.COBOL
(1) cobol32 -M DEMO04.COB (2)
link /out:..¥BIN¥DEMO04.EXE F3CWDRV.LIB DEMO04.OBJ F3BICIMP.LIB LIBC.LIB KERNEL32.LIB USER32.LIB
(3) (1) SQL埋込みCOBOLプログラムのファイル名
(2) プレコンパイル後のSQL埋込みCOBOLプログラムのファイル名
(3) RDBライブラリを指定するオプション
64ビットで実行するアプリケーション:
ロードモジュールを作成するためには、cobolコマンドを実行します。
例
Windows Server(R) 2003 for ItaniumまたはWindows Server(R) 2008 for Itaniumにおいて、64ビットで実行す る場合の例を以下に示します。
主プログラムであるSQL埋込みCOBOLプログラム(DEMO05.COBOL)を、コンパイル・リンクします。ロードモ ジュールは“DEMO05.EXE”とします。
cd C:¥USERS¥DEFAULT¥APPLICATION¥SRC sqlpcob -v9 DEMO05.COBOL
(1) cobol -M DEMO05.COB (2)
link /out:..¥BIN¥DEMO05.EXE F3CWDRV_IA64.LIB DEMO05.OBJ F6AGCIMP.LIB LIBCMT.LIB BUFFEROVERFLOWU.LIB KERNEL32.LIB USER32.LIB
(3)
(1) SQL埋込みCOBOLプログラムのファイル名
(2) プレコンパイル後のSQL埋込みCOBOLプログラムのファイル名 (3) RDBライブラリを指定するオプション
コンパイル・リンクする場合に必要なオプション
clコマンド、cobolコマンドおよびcobol32コマンドの実行時には、必要に応じてオプションを指定します。アプリケーショ ンをコンパイル・リンクする場合に必要なオプションを以下に示します。
表5.9 アプリケーションをコンパイル・リンクする場合に必要なオプション
指定するオプション オプションの役割-M COBOLの場合に指定
F3CWDRV.LIB
RDBライブラリの指定(32ビットのシングルス レッドで動作するアプリケーションをコンパイ ル・リンクする場合に使用)
F3CWDRVM.LIB
RDBライブラリの指定(32ビットのマルチス レッドで動作するアプリケーションをコンパイ ル・リンクする場合に使用)
F3CWDRV_IA64.LIB
RDBライブラリの指定(Windows Server(R) 2003 for ItaniumまたはWindows Server(R) 2008 for Itaniumにおいて64ビットのシング ルスレッドで動作するアプリケーションをコン パイル・リンクする場合に使用)
F3CWDRVM_IA64.LIB
RDBライブラリの指定(Windows Server(R) 2003 for ItaniumまたはWindows Server(R) 2008 for Itaniumにおいて64ビットのマルチ スレッドで動作するアプリケーションをコンパ イル・リンクする場合に使用)
-MT マルチスレッドで動作するアプリケーション をコンパイル・リンクする場合に指定
F3CWDRV_x64.LIB
RDBライブラリの指定(Windows(R) XP for x64、Windows Server(R) 2003 x64 Editions またはWindows Server(R) 2008 for x64にお いて64ビットのシングルスレッドで動作する アプリケーションをコンパイル・リンクする場 合に使用)
F3CWDRVM_x64.LIB
RDBライブラリの指定(Windows(R) XP for x64、Windows Server(R) 2003 x64 Editions またはWindows Server(R) 2008 for x64にお いて64ビットのマルチスレッドで動作するア プリケーションをコンパイル・リンクする場合 に使用)