Symfoware Server アプリケーション開発ガイド(埋込みSQL編) - FUJITSU - |
目次 索引 |
第5章 アプリケーションのコンパイル・リンク | > 5.2 Windows(R)を使用した場合のアプリケーションのコンパイル・リンク | > 5.2.4 複数のコンパイル単位から構成されるアプリケーションのコンパイル・リンクの方法 |
複数のコンパイル単位を動的リンクする場合のコンパイル・リンクの方法を以下に示します。
SQL文を使用するコンパイル単位は、sqlccまたはsqlcobolを使用してコンパイル・リンクを行います。
sqlccおよびsqlcobolのオプションの指定方法については、“コマンドリファレンス”を参照してください。
アプリケーションによっては、SQL文を使用しないコンパイル単位が存在する場合があります。
SQL文を使用しないコンパイル単位は、clコマンド、cobolコマンドまたはcobol32コマンドを使用してコンパイル・リンクを行います。
また、ロードモジュールを動的リンクして作成するためには、副プログラムは共用ライブラリにロードモジュールとして作成し、主プログラムのコンパイル・リンク時にリンクする副プログラムのロードモジュール名を指定する必要があります。
アプリケーションを動的リンクする場合に必要なオプションを以下に示します。
コンパイル対象の性質 |
指定するオプション |
備考 |
|
---|---|---|---|
SQL文を含むコンパイル単位 |
主プログラム |
副プログラムのDLL名 |
リンクする副プログラム |
-M |
COBOLの場合に指定 |
||
副プログラム |
動的リンクオプション |
動的リンクの指定 |
|
SQL文を含まないコンパイル単位 |
主プログラム |
副プログラムのDLL名 |
リンクする副プログラム |
-M |
COBOLの場合に指定 |
||
副プログラム |
動的リンクオプション |
動的リンクの指定 |
例1
SQL文を使用する主プログラム(DEMO10MAIN.SC)と、SQL文を使用する2個の副プログラム(SUB1.SC、SUB2.SC)を動的リンクします。DLL名は、副プログラムを“SUB1.LIB”および“SUB2.LIB”とします。主プログラムのロードモジュール名は、“DEMO10MAIN.EXE”とします。
cd C:\USERS\DEFAULT\APPLICATION\SRC sqlcc -L"/DLL /EXPORT:SUB1" SUB1.SC sqlcc -L"/DLL /EXPORT:SUB2" SUB2.SC sqlcc -L"/out:..\BIN\DEMO10MAIN.EXE SUB1.LIB SUB2.LIB" DEMO10MAIN.SC
例2
64ビットで実行するアプリケーションを動的リンクする場合の例を示します。SQL文を使用する主プログラム(DEMO15MAIN.SC)と、SQL文を使用する2個の副プログラム(SUB11.SC、SUB12.SC)を動的リンクします。DLL名は、副プログラムを“SUB11.LIB”および“SUB12.LIB”とします。主プログラムのロードモジュール名は、“DEMO15MAIN.EXE”とします。
cd C:\USERS\DEFAULT\APPLICATION\SRC sqlcc -v9 -L"/DLL /EXPORT:SUB11" SUB11.SC sqlcc -v9 -L"/DLL /EXPORT:SUB12" SUB12.SC sqlcc -v9 -L"/out:..\BIN\DEMO15MAIN.EXE SUB11.LIB SUB12.LIB" DEMO15MAIN.SC
例3
SQL文を使用しない主プログラム(DEMO11MAIN.C)と、SQL文を使用する副プログラム(SUB3.SC)、およびSQL文を使用しない副プログラム(SUB4.C)を動的リンクします。副プログラムのライブラリ名は、“SUB3.LIB”および“SUB4.LIB”、主プログラムのロードモジュール名を“DEMO11MAIN.EXE”とします。
cd C:\USERS\DEFAULT\APPLICATION\SRC sqlcc -L"/DLL /EXPORT:SUB3" SUB3.SC cl /c SUB4.C link /DLL /EXPORT:SUB4 SUB4.OBJ cl /Fe..\BIN\DEMO11MAIN.EXE DEMO11MAIN.C SUB3.LIB SUB4.LIB
例1
SQL文を使用する主プログラム(DEMO12MAIN.SCOB)と、SQL文を使用する2個の副プログラム(SUB5.SCOB、SUB6.SCOB)を動的リンクします。DLL名は、副プログラムを“SUB5.LIB”および“SUB6.LIB”とします。主プログラムのロードモジュール名は、“DEMO12MAIN.EXE”とします。
cd C:\USERS\DEFAULT\APPLICATION\SRC sqlcobol -L"/DLL /EXPORT:SUB5" SUB5.SCOB sqlcobol -L"/DLL /EXPORT:SUB6" SUB6.SCOB sqlcobol -L"/out:..\BIN\DEMO12MAIN.EXE SUB5.LIB SUB6.LIB" DEMO12MAIN.SCOB -M
例2
64ビットで実行するアプリケーションを動的リンクする場合の例を示します。SQL文を使用する主プログラム(DEMO16MAIN.SCOB)と、SQL文を使用する2個の副プログラム(SUB13.SCOB、SUB14.SCOB)を動的リンクします。DLL名は、副プログラムを“SUB13.LIB”および“SUB14.LIB”とします。主プログラムのロードモジュール名は、“DEMO16MAIN.EXE”とします。
cd C:\USERS\DEFAULT\APPLICATION\SRC sqlcobol -v9 -L"/DLL /EXPORT:SUB13" SUB13.SCOB sqlcobol -v9 -L"/DLL /EXPORT:SUB14" SUB14.SCOB sqlcobol -v9 -L"/out:..\BIN\DEMO16MAIN.EXE SUB13.LIB SUB14.LIB" DEMO16MAIN.SCOB -M
例3
SQL文を使用しない主プログラム(DEMO13MAIN.COBOL)と、SQL文を使用する副プログラム(SUB7.SCOB)、およびSQL文を使用しない副プログラム(SUB8.COBOL)を動的リンクします。副プログラムのDLL名は、“SUB7.LIB”および“SUB8.LIB”、主プログラムのロードモジュール名を“DEMO13MAIN.EXE”とします。
cd C:\USERS\DEFAULT\APPLICATION\SRC sqlcobol -L"/DLL /EXPORT:SUB7" SUB7.SCOB cobol32 SUB8.COBOL link /DLL /EXPORT:SUB8 SUB8.OBJ F3BICIMP.LIB LIBC.LIB KERNEL32.LIB USER32.LIB cobol32 -M DEMO13MAIN.COBOL link /out:..\BIN\DEMO13MAIN.EXE DEMO13MAIN.OBJ SUB7.LIB SUB8.LIB F3BICIMP.LIB LIBC.LIB KERNEL32.LIB USER32.LIB
例4
64ビットで実行するアプリケーションを動的リンクする場合の例を示します。SQL文を使用しない主プログラム(DEMO17MAIN.COBOL)と、SQL文を使用する副プログラム(SUB15.SCOB)、およびSQL文を使用しない副プログラム(SUB16.COBOL)を動的リンクします。副プログラムのDLL名は、“SUB15.LIB”および“SUB16.LIB”、主プログラムのロードモジュール名を“DEMO17MAIN.EXE”とします。
cd C:\USERS\DEFAULT\APPLICATION\SRC sqlcobol -v9 -L"/DLL /EXPORT:SUB15" SUB15.SCOB cobol SUB16.COBOL link /DLL /EXPORT:SUB16 SUB16.OBJ F6AGCIMP.LIB LIBCMT.LIB BUFFEROVERFLOW.LIB KERNEL32.LIB USER32.LIB cobol -M DEMO17MAIN.COBOL link /out:..\BIN\DEMO17MAIN.EXE DEMO17MAIN.OBJ SUB15.LIB SUB16.LIB F6AGCIMP.LIB LIBCMT.LIB BUFFEROVERFLOW.LIB KERNEL32.LIB USER32.LIB
目次 索引 |