Symfoware Server アプリケーション開発ガイド(埋込みSQL編) - FUJITSU -
目次 索引 前ページ次ページ

第5章 アプリケーションのコンパイル・リンク> 5.2 Windows(R)を使用した場合のアプリケーションのコンパイル・リンク> 5.2.4 複数のコンパイル単位から構成されるアプリケーションのコンパイル・リンクの方法

5.2.4.1 静的リンクする場合のコンパイル・リンク

複数のコンパイル単を静的リンクする場合のコンパイル・リンクの方法を以下に示します。

[図:複数のコンパイル単位を静的リンクする場合のコンパイル・リンクの方法]

SQL文を使用するコンパイル単は、sqlccまたはsqlcobolを使用してコンパイル・リンクを行います。

sqlccおよびsqlcobolのオプションの指定方法については、“コマンドリファレンス”を参照してください。

アプリケーションによっては、SQL文を使用しないコンパイル単が存在する場合があります。

SQL文を使用しないコンパイル単位は、clコマンド、cobolコマンドまたはcobol32コマンドを使用してコンパイル・リンクを行います。

また、ロードモジュールを静的リンクして作成するには、副プログラムのオブジェクトファイルを作成し、主プログラムに静的にリンクする必要があります。

アプリケーションを静的リンクする場合に必要なオプションを以下に示します。

[表: アプリケーションを静的リンクする場合に必要なオプショ]

コンパイル対象の性質

指定するオプション

備考

SQL文を含むコンパイル単位

主プログラム

副プログラムのオブジェクトファイル名

リンクする副プログラム

-M

COBOLの場合に指定

副プログラム

/c

オブジェクトファイルの作成

SQL文を含まないコンパイル単位

主プログラム

副プログラムのオブジェクトファイル名

リンクする副プログラム

-M

COBOLの場合に指定

F3CWDRV.LIB

RDBライブラリの指定(32ビットのシングルスレッドで動作するアプリケーションを静的リンクする場合に使用)

F3CWDRVM.LIB

RDBライブラリの指定(32ビットのマルチスレッドで動作するアプリケーションを静的リンクする場合に使用)

F3CWDRV_IA64.LIB

RDBライブラリの指定(Windows Server(R) 2003 for Itaniumにおいて64ビットのシングルスレッドで動作するアプリケーションを静的リンクする場合に使用)

F3CWDRVM_IA64.LIB

RDBライブラリの指定(Windows Server(R) 2003 for Itaniumにおいて64ビットのマルチスレッドで動作するアプリケーションを静的リンクする場合に使用)

F3CWDRV_x64.LIB

RDBライブラリの指定(Windows Server(R) 2003 x64 Editionsにおいて64ビットのシングルスレッドで動作するアプリケーションを静的リンクする場合に使用)

F3CWDRVM_x64.LIB

RDBライブラリの指定(Windows Server(R) 2003 x64 Editionsにおいて64ビットのマルチスレッドで動作するアプリケーションを静的リンクする場合に使用)

副プログラム

/c

オブジェクトファイルの作成

■C言語使用時の例

例1

SQL文を使用する主プログラム(DEMO04MAIN.SC)と、SQL文を使用する2個の副プログラム(DEMO04SUB1.SC、DEMO04SUB2.SC)を静的リンクします。ロードモジュール名は“DEMO04.EXE”とします。
cd C:\USERS\DEFAULT\APPLICATION\SRC 
sqlcc  DEMO04SUB1.SC /c 
sqlcc  DEMO04SUB2.SC /c 
sqlcc  -L"/out:..\BIN\DEMO04.EXE DEMO04SUB1.OBJ DEMO04SUB2.OBJ" DEMO04MAIN.SC 

 

例2

SQL文を使用しない主プログラム(DEMO05MAIN.C)と、SQL文を使用する副プログラム(DEMO05SUB1.SC)、およびSQL文を使用しない副プログラム(DEMO05SUB2.C)を静的リンクします。ロードモジュール名は“DEMO05.EXE”とします。
cd C:\USERS\DEFAULT\APPLICATION\SRC
sqlcc DEMO05SUB1.SC /c
cl /c DEMO05SUB2.C
cl DEMO05MAIN.C  /Fe..\BIN\DEMO05.EXE  DEMO05SUB1.OBJ DEMO05SUB2.OBJ F3CWDRV.LIB

 

例3

Windows Server(R) 2003 for Itaniumにおいて64ビットで実行するアプリケーションを静的リンクする場合の例を示します。SQL文を使用しない主プログラム(DEMO08MAIN.C)と、SQL文を使用する副プログラム(DEMO08SUB1.SC)、およびSQL文を使用しない副プログラム(DEMO08SUB2.C)を静的リンクします。ロードモジュール名は“DEMO08.EXE”とします。
cd C:\USERS\DEFAULT\APPLICATION\SRC
sqlcc -v9 DEMO08SUB1.SC /c
cl /c DEMO08SUB2.C
cl DEMO08MAIN.C  /Fe..\BIN\DEMO08.EXE  DEMO08SUB1.OBJ DEMO08SUB2.OBJ F3CWDRV_IA64.LIB

 

例4

Windows Server(R) 2003 x64 Editionsにおいて64ビットで実行するアプリケーションを静的リンクする場合の例を示します。SQL文を使用しない主プログラム(DEMO08MAIN.C)と、SQL文を使用する副プログラム(DEMO08SUB1.SC)、およびSQL文を使用しない副プログラム(DEMO08SUB2.C)を静的リンクします。ロードモジュール名は“DEMO08.EXE”とします。

 

cd C:\USERS\DEFAULT\APPLICATION\SRC
sqlcc -v9 DEMO08SUB1.SC /c
cl /c DEMO08SUB2.C
cl DEMO08MAIN.C  /Fe..\BIN\DEMO08.EXE  DEMO08SUB1.OBJ DEMO08SUB2.OBJ F3CWDRV_x64.LIB

■COBOL使用時の例

例1

SQL文を使用する主プログラム(DEMO06MAIN.SCOB)と、SQL文を使用する2個の副プログラム(DEMO06SUB1.SCOB、DEMO06SUB2.SCOB)を静的リンクします。ロードモジュール名は“DEMO06.EXE”とします。
cd C:\USERS\DEFAULT\APPLICATION\SRC
sqlcobol DEMO06SUB1.SCOB
sqlcobol DEMO06SUB2.SCOB
sqlcobol -L"/out:..\BIN\DEMO06.EXE DEMO06SUB1.OBJ DEMO06SUB2.OBJ"  DEMO06MAIN.SCOB -M

 

例2

SQL文を使用しない主プログラム(DEMO07MAIN.COBOL)と、SQL文を使用する副プログラム(DEMO07SUB1.SCOB)、およびSQL文を使用しない副プログラム(DEMO07SUB2.COBOL)を静的リンクします。ロードモジュール名は“DEMO07.EXE”とします。
cd C:\USERS\DEFAULT\APPLICATION\SRC
sqlcobol DEMO07SUB1.SCOB
cobol32 DEMO07SUB2.COBOL
cobol32 -M DEMO07MAIN.COBOL
link /out:..\BIN\DEMO07.EXE F3CWDRV.LIB DEMO07MAIN.OBJ DEMO07SUB1.OBJ DEMO07SUB2.OBJ F3BICIMP.LIB LIBC.LIB KERNEL32.LIB USER32.LIB 

 

例3

Windows Server(R) 2003 for Itaniumにおいて64ビットで実行するアプリケーションを静的リンクする場合の例を示します。SQL文を使用しない主プログラム(DEMO09MAIN.COBOL)と、SQL文を使用する副プログラム(DEMO09SUB1.SCOB)、およびSQL文を使用しない副プログラム(DEMO09SUB2.COBOL)を静的リンクします。ロードモジュール名は“DEMO09.EXE”とします。
cd C:\USERS\DEFAULT\APPLICATION\SRC
sqlcobol -v9 DEMO09SUB1.SCOB
cobol DEMO09SUB2.COBOL
cobol -M DEMO09MAIN.COBOL
link /out:..\BIN\DEMO09.EXE F3CWDRV_IA64.LIB DEMO09MAIN.OBJ DEMO09SUB1.OBJ DEMO09SUB2.OBJ F6AGCIMP.LIB LIBCMT.LIB BUFFEROVERFLOWU.LIB KERNEL32.LIB USER32.LIB 

目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2007-2008