第5章 アプリケーションのコンパイル・リンク
5.1 UNIX系を使用した場合のアプリケーションのコンパイル・リンク
5.1.3 コンパイル・リンクの方法
環境変数名 意味 [bash、Bシェル、Kシェルの場合]
INCDIR=/sqlapp/include:/splapp2/include:/use/include;
export INCDIR
ただし、環境変数RDBDBを指定した場合、またはSQLPCおよびSQLPCOBでコンパイル時の起動オプションに-dを指定 した場合、そのアプリケーションからCONNECT文を実行することはできません。
アプリケーションをCOBOLで作成する場合は、COBOLプログラムのコンパイルのための環境変数の定義も必要となりま す。
参照
COBOLプ ロ グ ラ ム の コ ン パ イ ル の た め に 必 要 な 環 境 変 数 の 定 義 に つ い て は 、 “Sun日 本 語COBOL使 用 手 引 書”、“NetCOBOL使用手引書”または“COBOL97使用手引書”を参照してください。
作業用のディレクトリ構成
アプリケーションのコンパイル・リンクで参照あるいは作成するファイルを格納するための、作業用のディレクトリ構成を決 めます。ディレクトリ構成は、開発および保守のしやすさを考慮して作成してください。
本章でアプリケーションのコンパイル・リンクの例を示す場合、作業用のディレクトリは以下の構成で作成されているもの とします。
図5.2 作業用のディレクトリ構成の例
コンパイル・リンクを一括して実行する場合
アプリケーションをコンパイル・リンクするためのシェルプロシジャが、システムから提供されています。これを、標準シェル プロシジャと呼びます。標準シェルプロシジャは、以下のファイルに提供されています。
なお、これらのファイル名は標準シェルプロシジャを“/opt”配下のディレクトリにインストールした場合のものです。
OSの種類 ファイル名 備考
Solaris
/opt/FSUNrdb2b/demo/shell/sqlcc または
/opt/FSUNrdb2b/demo/shell/sqlfcc C言語用のシェルプロシジャ
/opt/FSUNrdb2b/demo/shell/sqlcobol COBOL用のシェルプロシ ジャ
Linux
/opt/FJSVrdb2b/demo/shell/sqlcc C言語用のシェルプロシジャ
/opt/FJSVrdb2b/demo/shell/sqlcobol COBOL用のシェルプロシ ジャ
C言語用の標準シェルプロシジャ
C言語用の標準シェルプロシジャはsqlccです。Solarisの場合は、sqlfccも使用できます。sqlccおよびsqlfccの入力ファ イルは、SQL埋込みCプログラムのソースファイルです。このファイル名には拡張子として“.c”および“.lst”以外を指定 する必要があります。出力ファイルは実行可能プログラムです。また、sqlccおよびsqlfccは作業用のファイルを作成し ます。作業用のファイルについては、ファイル名が自動的に決定されカレントディレクトリに作成されます。C言語の場 合は、文字コード系に依存しないロードモジュールが作成されます。文字コード系は実行時にクライアント用の動作 環境ファイルまたは環境変数で指定します。sqlccおよびsqlfccの使用例を以下に示します。
例1
sqlccの使用例を示します。“main”を持つSQL埋込みCプログラム(demo01.sc)をコンパイル・リンクします。ロード モジュールは“demo01”とします。
cd /home/rdb2/application/src
sqlcc -I/home/rdb2/include demo01.sc -o ../bin/demo01 (1) (2) (3) (1) インクルードファイルを検索するディレクトリを指定するオプション (2) SQL埋込みCプログラムのファイル名
(3) ccコマンド用のオプション
(3) gccコマンド用のオプション
例2
sqlfccの使用例を示します。“main”を持つSQL埋込みCプログラム(demo01.sc)をコンパイル・リンクします。ロード モジュールは“demo01”とします。
cd /home/rdb2/application/src
sqlfcc -I/home/rdb2/include demo01.sc -o ../bin/demo01 (1) (2) (3) (1) インクルードファイルを検索するディレクトリを指定するオプション
(2) SQL埋込みCプログラムのファイル名
(3) fccコマンド用のオプション オプション
sqlccまたはsqlfccでは、使用するインクルードファイルの配置ディレクトリなどのオプションが指定できます。64ビッ
トで実行するSQL埋込みCプログラムをコンパイル・リンクする場合は、v9オプションを指定してください。また、マ ルチスレッド環境で動作するまたはセションを操作する関数を利用するSQL埋込みCプログラムをコンパイル・リン クする場合は、Tオプションを指定してください。
注意
Solarisの場合、v9オプションとTオプションを同時に指定することはできません。
参照
オプションの詳細については、“コマンドリファレンス”を参照してください。
SQL埋込みCプログラムのファイル名
SQL埋込みCプログラムで記述されたアプリケーションの、ソースファイルを指定します。
ccコマンド用のオプション
sqlccはロードモジュールを作成するために、ccコマンドを実行します。このとき、ccコマンドに渡すオプションを指
定します。
gccコマンド用のオプション
sqlccはロードモジュールを作成するために、gccコマンドを実行します。このとき、gccコマンドに渡すオプションを
指定します。
fccコマンド用のオプション
sqlfccはロードモジュールを作成するために、fccコマンドを実行します。このとき、fccコマンドに渡すオプションを
指定します。
COBOL用の標準シェルプロシジャ
COBOL用の標準シェルプロシジャはsqlcobolです。sqlcobolの入力ファイルは、SQL埋込みCOBOLプログラムのソー スファイルです。このファイル名には拡張子として“.cobol”および“.lst”以外を指定する必要があります。出力ファイル はロードモジュールです。また、sqlcobolは作業用のファイルを作成します。作業用のファイルについては、ファイル 名が自動的に決定されカレントディレクトリに作成されます。sqlcobolの使用例を以下に示します。
例
主プログラムであるSQL埋込みCOBOLプログラム(demo02.scob)を、コンパイル・リンクします。ロードモジュール は“demo02”とします。
cd /home/rdb2/application/src
sqlcobol -I/home/rdb2/include demo02.scob -M -o ../bin/demo02 (1) (2) (3)
(1) インクルードファイルを検索するディレクトリを指定するオプション
(2) SQL埋込みCOBOLプログラムのファイル名
(3) cobolコマンド用のオプション オプション
sqlcobolでは、使用する登録集原文ファイルの配置ディレクトリなどのオプションが指定できます。64ビットで実行する
SQL埋込みCOBOLプログラムをコンパイル・リンクする場合は、v9オプションを指定してください。また、マルチス
レッド環境で動作するSQL埋込みCOBOLプログラムをコンパイル・リンクする場合は、Tオプションを指定してくだ さい。
注意
Solarisの場合、v9オプションを指定することはできません。
参照
オプションの詳細については、“コマンドリファレンス”を参照してください。
SQL埋込みCOBOLプログラムのファイル名
SQL埋込みCOBOLプログラムで記述されたアプリケーションの、ソースファイルを指定します。
cobolコマンド用のオプション
sqlcobolはロードモジュールを作成するために、cobolコマンドを実行します。このとき、cobolコマンドに渡すオプ
ションを指定します。
プレコンパイルとコンパイルを分けて実行する場合
アプリケーションをコンパイル・リンクするために、まずsqlpcコマンドまたはsqlpcobコマンドを利用してプレコンパイルしま す。アプリケーションをプレコンパイルすることによって、アプリケーション中のSQL文をコンパイルし、標準のCプログラムまたは
COBOLプログラムに変換します。その後、ccコマンド、gccコマンド、fccコマンドまたはcobolコマンドを利用してロードモ
ジュールを作成します。
注意
プレコンパイルによって作成されたソースファイルは、中身を変更しないでください。
C言語を使用する場合
C言語用のプレコンパイルコマンドは、sqlpcです。sqlpcコマンドの入力ファイルは、SQL埋込みCプログラムのソース ファイルです。このファイル名には拡張子として“.c”および“.lst”以外を指定する必要があります。出力ファイルはCプ ログラムのソースファイルで、ファイル名に拡張子として“.c”が付きます。
参照
sqlpcコマンドの詳細については、“コマンドリファレンス”を参照してください。
プレコンパイルが終了したら、ロードモジュールを作成します。ロードモジュールを作成するためには、ccコマンド、gcc コマンドまたはfccコマンドを実行します。C言語の場合は、文字コード系に依存しないロードモジュールが作成されま す。文字コード系は実行時にクライアント用の動作環境ファイルまたは環境変数で指定します。
C言語を使用した、コンパイル・リンクの例を以下に示します。
例1
主 プ ロ グ ラ ム で あ るSQL埋 込 みCプ ロ グ ラ ム(demo03.sc)を 、 コ ン パ イ ル ・ リ ン ク し ま す 。 ロ ー ド モ ジ ュ ー ル は“demo03”とします。
cd /home/rdb2/application/src sqlpc demo03.sc
(1)
cc -o ../bin/demo03 -lsqldrv -L/opt/FSUNrdb2b/lib demo03.c (2) (3) (4) (1) SQL埋込みCプログラムのファイル名
(2) RDBライブラリを指定するオプション
(3) RDBライブラリのパスを指定するオプション
(4) プレコンパイル後のSQL埋込みCプログラムのファイル名 例2
RHEL-AS4(x86)またはRHEL5(x86)の場合
主プログラムであるSQL埋込みCプログラム(demo03.sc)を、コンパイル・リンクします。ロードモジュール は“demo03”とします。
cd /home/rdb2/application/src sqlpc demo03.sc
(1)
gcc -o ../bin/demo03 -lsqldrv -L/opt/FJSVrdb2b/lib demo03.c (2) (3) (4) (1) SQL埋込みCプログラムのファイル名
(2) RDBライブラリを指定するオプション
(3) RDBライブラリのパスを指定するオプション
(4) プレコンパイル後のSQL埋込みCプログラムのファイル名 例3
RHEL-AS4(IPF)、RHEL-AS4(EM64T)、RHEL5(IPF)またはRHEL5(Intel64)の場合 32ビットで動作するアプリケーションの場合
主プログラムであるSQL埋込みCプログラム(demo03.sc)を、コンパイル・リンクします。ロードモジュール は“demo03”とします。
cd /home/rdb2/application/src sqlpc demo03.sc
(1)
gcc -o ../bin/demo03 -m32 -mtune=i386 -lsqldrv -L/opt/FJSVrdb2b/lib demo03.c (2) (3) (4) (5)
(1) SQL埋込みCプログラムのファイル名
(2) 32ビットアプリケーションのコンパイル・リンクを指定するオプション
(3) RDBライブラリを指定するオプション