Symfoware Server アプリケーション開発ガイド(埋込みSQL編) - FUJITSU - |
目次 索引 |
第5章 アプリケーションのコンパイル・リンク | > 5.1 UNIX系を使用した場合のアプリケーションのコンパイル・リンク | > 5.1.4 複数のコンパイル単位から構成されるアプリケーションのコンパイル・リンクの方法 |
複数のコンパイル単位を静的リンクする場合のコンパイル・リンクの方法を以下に示します。
SQL文を使用するコンパイル単位は、sqlcc、sqlfccまたはsqlcobolを使用してコンパイル・リンクを行います。
sqlcc、sqlfccおよびsqlcobolのオプションの指定方法については、“コマンドリファレンス”を参照してください。
アプリケーションによっては、SQL文を使用しないコンパイル単位が存在する場合があります。SQL文を使用しないコンパイル単位は、ccコマンド、gccコマンド、fccコマンドまたはcobolコマンドを使用してコンパイル・リンクを行います。
また、ロードモジュールを静的リンクして作成するには、副プログラムのオブジェクトファイルを作成し、主プログラムに静的にリンクする必要があります。
アプリケーションを静的リンクする場合に必要なオプションを以下に示します。
コンパイル対象の性質 |
指定するオプション |
備考 |
|
---|---|---|---|
SQL文を含むコンパイル単位 |
主プログラム |
副プログラムのオブジェクトファイル名 |
リンクする副プログラム |
-M |
COBOLの場合に指定 |
||
副プログラム |
-c |
オブジェクトファイルの作成 |
|
SQL文を含まないコンパイル単位 |
主プログラム |
副プログラムのオブジェクトファイル名 |
リンクする副プログラム |
-M |
COBOLの場合に指定 |
||
-L/opt/FSUNrdb2b/lib |
RDBライブラリパス指定 |
||
-L/opt/FJSVrdb2b/lib |
RDBライブラリパス指定 |
||
-lsqldrvm |
RDBライブラリ名(32ビットでかつ、マルチスレッドで動作するアプリケーションを静的リンクする場合に使用) |
||
-lsqldrv |
RDBライブラリ名(32ビットで実行するアプリケーションを静的リンクする場合に使用) |
||
-lsql64drvm |
RDBライブラリ名(64ビットでかつ、マルチスレッドで実行するアプリケーションを静的リンクする場合に使用) |
||
-lsql64drv |
RDBライブラリ名(64ビットで実行するアプリケーションを静的リンクする場合に使用) |
||
副プログラム |
-c |
オブジェクトファイルの作成 |
以下の例において、sqlfccを利用する場合は、sqlccをsqlfccに、またccをfccに置き換えたものになります。
例1
SQL文を使用する主プログラム(demo04main.sc)と、SQL文を使用する2個の副プログラム(demo04sub1.sc、demo04sub2.sc)を静的リンクします。ロードモジュール名は“demo04”とします。
cd /home/rdb2/application/src sqlcc demo04sub1.sc -c sqlcc demo04sub2.sc -c sqlcc demo04main.sc -o ../bin/demo04 demo04sub1.o demo04sub2.o
例2
SQL文を使用しない主プログラム(demo05main.c)と、SQL文を使用する副プログラム(demo05sub1.sc)、およびSQL文を使用しない副プログラム(demo05sub2.c)を静的リンクします。ロードモジュール名は“demo05”とします。なお、Linuxの場合は、Lオプションに指定するパス名を読み替えてください。
cd /home/rdb2/application/src sqlcc demo05sub1.sc -c cc -c demo05sub2.c cc -o ../bin/demo05 -L/opt/FSUNrdb2b/lib -lsqldrv demo05main.c demo05sub1.o demo05sub2.o
例3
64ビットで実行するアプリケーションを静的リンクする場合の例を示します。SQL文を使用しない主プログラム(demo08main.c)と、SQL文を使用する副プログラム(demo08sub1.sc)、およびSQL文を使用しない副プログラム(demo08sub2.c)を静的リンクします。ロードモジュール名は“demo08”とします。
cd /home/rdb2/application/src sqlcc -v9 demo08sub1.sc -c cc -xarch=v9 -c demo08sub2.c cc -xarch=v9 -o ../bin/demo08 -L/opt/FSUNrdb2b/lib -lsql64drv demo08main.c demo08sub1.o demo08sub2.o
例4
64ビットで実行するアプリケーションを静的リンクする場合の例を示します。SQL文を使用しない主プログラム(demo09main.c)と、SQL文を使用する副プログラム(demo09sub1.sc)、およびSQL文を使用しない副プログラム(demo09sub2.c)を静的リンクします。ロードモジュール名は“demo08”とします。
cd /home/rdb2/application/src sqlcc -v9 demo09sub1.sc -c cc -c demo09sub2.c cc -o ../bin/demo09 -L/opt/FJSVrdb2b/lib -lsql64drv demo09main.c demo09sub1.o demo09sub2.o
例1
SQL文を使用する主プログラム(demo06main.scob)と、SQL文を使用する2個の副プログラム(demo06sub1.scob、demo06sub2.scob)を静的リンクします。ロードモジュール名は“demo06”とします。
cd /home/rdb2/application/src sqlcobol demo06sub1.scob -c sqlcobol demo06sub2.scob -c sqlcobol demo06main.scob -M -o ../bin/demo06 demo06sub1.o demo06sub2.o
例2
SQL文を使用しない主プログラム(demo07main.cobol)と、SQL文を使用する副プログラム(demo07sub1.scob)、およびSQL文を使用しない副プログラム(demo07sub2.cobol)を静的リンクします。ロードモジュール名は“demo07”とします。
cd /home/rdb2/application/src sqlcobol demo07sub1.scob -c cobol -c demo07sub2.cobol cobol -M -o ../bin/demo07 -L/opt/FSUNrdb2b/lib -lsqldrv demo07main.cobol demo07sub1.o demo07sub2.o
例3
64ビットで実行するアプリケーションを静的リンクする場合の例を示します。SQL文を使用しない主プログラム(demo08main.cobol)と、SQL文を使用する副プログラム(demo08sub1.scob)、およびSQL文を使用しない副プログラム(demo08sub2.cobol)を静的リンクします。ロードモジュール名は“demo08”とします。
cd /home/rdb2/application/src sqlcobol -v9 demo08sub1.scob -c cobol -c demo08sub2.cobol cobol -M -o ../bin/demo08 -L/opt/FJSVrdb2b/lib -lsql64drv demo08main.cobol demo08sub1.o demo08sub2.o
目次 索引 |