ページの先頭行へ戻る
Symfoware Server V10.0.0/V10.0.1 アプリケーション開発ガイド(埋込みSQL編)

6.1.3 コンパイル・リンクの方法

コンパイル・リンクを行うには、以下の2つの方法があります。

コンパイル・リンクを一括して実行する場合は、標準シェルプロシジャを利用します。プレコンパイルとコンパイルを分けて実行する場合は、sqlpcコマンドまたはsqlpcobコマンドを利用します。

コンパイル・リンクを一括して実行する場合

アプリケーションをコンパイル・リンクするためのシェルプロシジャが、システムから提供されています。これを、標準シェルプロシジャと呼びます。標準シェルプロシジャは、以下のファイルに提供されています。

なお、これらのファイル名は標準シェルプロシジャを“/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プログラムのファイル名

Solaris(3) ccコマンド用のオプション

Linux(3) gccコマンド用のオプション


Solaris例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オプションを指定してください。

注意

SolarisSolarisの場合、v9オプションとTオプションを同時に指定することはできません。

参照

オプションの詳細については、“コマンドリファレンス”を参照してください。

SQL埋込みCプログラムのファイル名

SQL埋込みCプログラムで記述されたアプリケーションの、ソースファイルを指定します。

Solarisccコマンド用のオプション

sqlccはロードモジュールを作成するために、ccコマンドを実行します。このとき、ccコマンドに渡すオプションを指定します。

Linuxgccコマンド用のオプション

sqlccはロードモジュールを作成するために、gccコマンドを実行します。このとき、gccコマンドに渡すオプションを指定します。

Solarisfccコマンド用のオプション

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オプションを指定してください。

注意

SolarisSolarisの場合、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言語を使用した、コンパイル・リンクの例を以下に示します。

Solaris例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プログラムのファイル名

Linux例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ライブラリを指定するオプション

(4) RDBライブラリのパスを指定するオプション

(5) プレコンパイル後のSQL埋込みCプログラムのファイル名

注意

RHEL-AS4(IPF)またはRHEL5(IPF)の場合には、32ビットで動作するアプリケーションをコンパイル・リンクできません。

  64ビットで動作するアプリケーションの場合

主プログラムであるSQL埋込みCプログラム(demo03.sc)を、コンパイル・リンクします。ロードモジュールは“demo03”とします。

cd /home/rdb2/application/src
sqlpc -v9 demo03.sc
              (1)
gcc -o ../bin/demo03 -lsql64drv -L/opt/FJSVrdb2b/lib demo03.c
                       (2)            (3)            (4)   

(1) SQL埋込みCプログラムのファイル名

(2) RDBライブラリを指定するオプション

(3) RDBライブラリのパスを指定するオプション

(4) プレコンパイル後のSQL埋込みCプログラムのファイル名

COBOLを使用する場合

COBOL用のプレコンパイルコマンドは、sqlpcobです。sqlpcobコマンドの入力ファイルは、SQL埋込みCOBOLプログラムのソースファイルです。このファイル名には拡張子として“.cobol”および“.lst”以外を指定する必要があります。出力ファイルはCOBOLプログラムのソースファイルで、ファイル名に拡張子として“.cobol”が付きます。

参照

sqlpcobコマンドの詳細については、“コマンドリファレンス”を参照してください。

プレコンパイルが終了したら、ロードモジュールを作成します。ロードモジュールを作成するためには、cobolコマンドを実行します。

COBOLを使用した、コンパイル・リンクの例を以下に示します。

主プログラムであるSQL埋込みCOBOLプログラム(demo04.scob)を、コンパイル・リンクします。ロードモジュールは“demo04”とします。

cd /home/rdb2/application/src
sqlpcob demo04.scob
           (1)
cobol -M -o ../bin/demo04 -lsqldrv -L/opt/FSUNrdb2b/lib demo04.cobol
                             (2)          (3)                (4)

(1) SQL埋込みCOBOLプログラムのファイル名

(2) RDBライブラリを指定するオプション

(3) RDBライブラリのパスを指定するオプション

(4) プレコンパイル後のSQL埋込みCOBOLプログラムのファイル名

コンパイル・リンクする場合に必要なオプション

ccコマンド、gccコマンド、fccコマンドおよびcobolコマンドの実行時には、必要に応じてオプションを指定します。アプリケーションをコンパイル・リンクする場合に必要なオプションを以下に示します。

表6.4 アプリケーションをコンパイル・リンクする場合に必要なオプション

指定するオプション

オプションの役割

-M

COBOLの場合に指定

-L/opt/FSUNrdb2b/lib
(Solaris)

RDBライブラリパス指定

-L/opt/FJSVrdb2b/lib
(Linux)

RDBライブラリパス指定

-lsqldrvm

RDBライブラリ名(32ビットでかつ、マルチスレッドで実行するアプリケーションをコンパイル・リンクする場合に指定)

-lsqldrv

RDBライブラリ名(32ビットで実行するアプリケーションをコンパイル・リンクする場合に指定)

-lsql64drvm

RDBライブラリ名(64ビットでかつ、マルチスレッドで実行するアプリケーションをコンパイル・リンクする場合に指定)

-lsql64drv

RDBライブラリ名(64ビットで実行するアプリケーションをコンパイル・リンクする場合に指定)

-xarch=v9
(Solaris)

64ビットで実行するSQL埋込みCプログラムをコンパイル・リンクする場合に指定

-mt
(Solaris)

マルチスレッドで実行するアプリケーションをコンパイル・リンクする場合に指定

-D_REENTRANT -lpthread
(Linux)

マルチスレッドで実行するアプリケーションをコンパイル・リンクする場合に指定

-m32 -mtune=i386
(Linux)

RHEL-AS4(EM64T)またはRHEL5(Intel64)で32ビットで実行するアプリケーションをコンパイル・リンクする場合に指定