MOVE 30 TO AGE
6.2 PC で作成した COBOL プログラムの PC でのコン パイルとリンケージ
6.2 PC で作成した COBOL プログラムの PC でのコン
XML ステータス定義(登録集原文 CBLXMLRC.cbl)の格納パスを設定します。次の値を指定してくだ さい。
COBOL2002のインストールフォルダ\copy
XML ステータス定義の詳細については,「4.4 XML アクセス用ステータス定義」を参照してくださ い。
(例)
COBOL の環境変数 CBLLIB の設定
set CBLLIB=COBOL2002インストールフォルダ\copy
(2) コンパイルとリンケージの指定例
cblxml コマンドが生成した COBOL 原始プログラムをコンパイルしたオブジェクトファイルでリンケー ジする場合,ccbl2002 コマンドに XML アクセス用実行時ライブラリ(cblxmlrt.lib)を指定します。コン パイルとリンケージの指定例を次に示します。
指定例
ccbl2002 -OutputFile mainprog.exe mainprog.cbl subprog.cbl cblxmlrt.lib
mainprog.cbl
作成した COBOL 主プログラムファイルの名称です。
subprog.cbl
cblxml コマンドによって生成された COBOL アクセスルーチンの副プログラムファイルの名称で す。
cblxmlrt.lib
XML アクセス用実行時ライブラリのリンケージ指定です。
注意事項
• XML 連携機能が生成する COBOL 原始プログラムをコンパイルする場合,ccbl2002 コマンドには 次のオプションを指定できません。オプションを指定した場合,動作は保証しません。
-SimMain -Bin1Byte -EquivRule,NotAny -EquivRule,NotExtend - EquivRule,StdCode -V3Rec,Fixed -V3Rec,Variable -V3RecFCSpace -JPN,Alnum -
JPN,V3JPN -JPN,V3JPNSpace -CompatiV3 -VOSCBL,OccursKey -VOSCBL,ReportControl -DigitsTrunc -BigEndian,Bin※ -BigEndian,Float※ -V3Spec -V3Spec,CopyEased -LowerAsUpper
注※
COBOL2002 03-05 以降では,cblxml コマンドの-bigendianbin
オプションまたは-bigendianfloat オプションと同時に使用することで指定できます。-bigendianbin オプションおよ び-bigendianfloat オプションについては,「4.1.4 -bigendianbin オプション(PC,Linux(x86),
Linux(x64)の場合)」および「4.1.5 -bigendianfloat オプション(PC,Linux(x86),Linux(x64) の場合)」を参照してください。
• XML 連携機能が生成する COBOL 原始プログラムに対して,-OleServer オプションは指定できま せん。指定した場合,動作は保証しません。
XML 連携機能が生成する COBOL 原始プログラムを OLE2 サーバで使用する場合は,XML 連携機 能が生成する COBOL 原始プログラムで DLL を作成し,OLE2 サーバから COBOL 副プログラム として呼び出してください。
6.2.2 マルチスレッドに対応した COBOL プログラムの作成
マルチスレッド対応 COBOL プログラムをコンパイルする場合は,-MultiThread オプションを指定しま す。ccbl2002 コマンドでリンクをします。
実行可能プログラムの作成方法
ccbl2002 -Compile,NoLink -MultiThread subprog.cbl
ccbl2002 -OutputFile mainprog.exe mainprog.obj subprog.obj cblxmlrt.lib 注意事項
XML ドキュメントの出力での排他制御はしていません。そのため,マルチスレッドでの動作時に,複 数のスレッドから同じ XML ドキュメントのファイルや同じ XML ドキュメントのバッファへは,出力 できません。
6.2.3 ダイナミックリンクに対応した COBOL プログラムの作成
COBOL2002 のダイナミックリンク機能を使用する場合,静的なリンクのときは,副プログラムを先にコ ンパイルし,作成されたインポートライブラリを実行可能ファイル作成時に指定してください。
動的なリンクのときは,インポートライブラリを実行可能プログラム作成時に指定しないでください。
定数指定の CALL 文の呼び出しを動的にリンクするときは,-DynamicLink,Call オプションを指定しま す。
(1) 副プログラムの作成方法
PC(x86)の場合
ccbl2002 -OutputFile subprog.dll -Dll,Stdcall subprog.cbl cblxmlrt.lib PC(x64)の場合
ccbl2002 -OutputFile subprog.dll -Dll subprog.cbl cblxmlrt.lib
(2) 実行可能ファイル(主プログラム)の作成方法
(a) 静的なリンクの場合 PC(x86)の場合
ccbl2002 -OutputFile mainprog.exe -Stdcall -Main,System mainprog.cbl subprog.lib PC(x64)の場合
ccbl2002 -OutputFile mainprog.exe -Main,System mainprog.cbl subprog.lib 注意事項
COBOL2002 の-StdCall オプションで読み込む.cbw ファイル(stdcall 呼び出し指示ファイル)に XML アクセスルーチンを指定する場合,XML アクセスルーチン名に含まれる特殊文字は,
COBOL2002 のプログラム名の変換規則に従い,変換して指定してください。例えば,ハイフン(-)
は下線(_)に変換した XML アクセスルーチン名を指定してください。
(b) 動的なリンク(定数指定の CALL 文での呼び出し)の場合 PC(x86)の場合
ccbl2002 -DynamicLink,Call -OutputFile mainprog.exe -Stdcall -Main,System mainprog.cbl PC(x64)の場合
ccbl2002 -DynamicLink,Call -OutputFile mainprog.exe -Main,System mainprog.cbl
注意事項
動的なリンクを使用する場合,実行時に呼び出し先プログラムの検索方法などを指定してください。動 的なリンクについては,マニュアル「COBOL2002 ユーザーズガイド」を参照してください。