2.4.3 コンパイラ環境変数の詳細
- 〈この項の構成〉
-
(1) CBL_RDBSYS
HiRDBによる索引編成ファイルの操作対象になるデータベースシステムを設定します。指定できる値は,HiRDBだけです。この環境変数の指定がない場合,および指定した値に誤りがある場合は,HiRDBが仮定されます。
- (例)
CBL_RDBSYS=HiRDB
(2) CBL_UNINITDATA_BREAKOFF
初期化漏れチェック処理を打ち切るかどうかを指定します。
この環境変数の値にNOを指定すると,初期化漏れチェック処理は打ち切られません。プログラムを実行したときに通る可能性のある経路(制御ブロック)をすべて走査するまで,初期化漏れチェック処理を続行します。
次の場合は,この環境変数の指定は無効となり,初期化漏れチェック処理で走査した制御ブロックの数が内部的な上限を超えると,初期化漏れチェック処理は打ち切られます。
-
この環境変数の指定がない,または環境変数の値にNO以外を指定している
- (例)
set CBL_UNINITDATA_BREAKOFF=NO
(3) CBLCOPT
ccblコマンドに指定するオプション列(コンパイラオプションの並び)を設定します。この環境変数に設定しておけば,ccblのコマンドラインにオプションを指定する必要がなくなります。ただし,この環境変数はCOBOL85からの移行を目的とする場合にだけご使用ください。
環境変数CBLCOPTにファイル名を指定した場合は,ファイル名が無視されます。
各オプションは空白で区切って指定します。
- (例)
CBLCOPT=-S1 -T4 -Ek
旧形式のオプションを開発マネージャで指定する場合,プロジェクト設定ダイアログボックスの[ユーザ設定]タブのコンパイラオプション欄で,-OldFormオプションを使用してください。[ユーザ設定]タブの詳細は,「2.2.3 オプションの設定方法」参照してください。
(4) CBLCOPT2002
ccbl2002コマンドに指定するオプション列(コンパイラオプションの並び)を設定します。この環境変数に設定しておけば,ccbl2002のコマンドラインにオプションを指定する必要がなくなります。
環境変数CBLCOPT2002にファイル名を指定した場合は,ファイル名が無視されます。また,開発マネージャを使用する場合は,プロジェクト構成のコンパイル方法に影響する次のオプションを指定できません。指定した場合,動作は保証しません。
-Main -MainNotCBL -Dll
各オプションは空白で区切って指定します。
- (例)
CBLCOPT2002=-StdVersion,1 -DebugData -Switch,EBCDIK
(5) CBLERRMAX
コンパイルを打ち切るSレベルのエラーの数を設定します。設定した個数分のエラーが発生すると,メッセージが出力され,コンパイルが打ち切られます。
設定できる範囲は0〜999,999で,省略時は30が仮定されます。コンパイルを続行し,すべてのエラーメッセージを出力したい場合は0を設定します。
なお,コンパイルリストを出力する場合(-SrcListオプションを指定した場合),この環境変数は無効となります。
- (例)
CBLERRMAX=15
(6) CBLFIX
固定形式正書法で書かれたCOBOL原始プログラムとしてコンパイルするCOBOLソースファイルの拡張子を設定します。ただし,拡張子.cbl,.cob,.ocbの付いたファイルは,ここで設定しなくても固定形式正書法で書かれたCOBOL原始プログラムとしてコンパイルされます。
拡張子は,先頭のピリオド(.)と3文字以内の英数字で指定します。複数の拡張子を設定する場合は,それぞれの拡張子を半角空白文字で区切って指定します。
- (例)
CBLFIX=.aaa .bbb .ccc
(7) CBLFREE
自由形式正書法で書かれたCOBOL原始プログラムとしてコンパイルするCOBOLソースファイルの拡張子を設定します。ただし,拡張子.cbf,.ocfの付いたファイルは,ここで設定しなくても自由形式正書法で書かれたCOBOL原始プログラムとしてコンパイルされます。
拡張子は,先頭のピリオド(.)と3文字以内の英数字で指定します。複数の拡張子を設定する場合は,それぞれの拡張子を半角空白文字で区切って指定します。
- (例)
CBLFREE=.aaa .bbb .ccc
(8) CBLINITVALUE
初期化属性プログラムの作業場所節にある,VALUE句の指定がないデータ項目の初期値をNULL(X'00')に設定するときに,環境変数CBLINITVALUEにNULLを設定します。初期化属性プログラムが呼ばれるたびに,初期値が設定されます。
環境変数CBLINITVALUEにNULL以外の値を設定した場合は,環境変数CBLINITVALUEは無視されます。
- (例)
set CBLINITVALUE=NULL
環境変数CBLINITVALUEは,次のデータ項目には適用されません。
-
VALUE句の指定があるデータ項目
-
ADDRESSED句の指定があるデータ項目
-
EXTERNAL句の指定があるデータ項目
- 注意事項
-
初期化属性プログラムの作業場所節に対する初期化は,環境変数CBLVALUEと環境変数CBLINITVALUEが両方とも有効な場合と,どちらか片方だけが有効な場合とで初期値が異なります。詳細については,マニュアル「COBOL2002 ユーザーズガイド」の「プログラム属性」の「初期化属性プログラム」を参照してください。また,環境変数CBLVALUEについては,「(18) CBLVALUE」を参照してください。
(9) CBLLIB
登録集原文を検索するフォルダを設定します。フォルダを複数指定する場合は,セミコロン(;)で区切って指定します。
- (例)
CBLLIB=\usr\user\copylib;c:\source\copy
なお,登録集環境変数が設定してある場合,登録集環境変数で設定したフォルダの方が環境変数CBLLIBで指定したフォルダよりも優先します。フォルダによる検索順序を次に示します。
-
登録集環境変数で設定したフォルダ
-
環境変数CBLLIBで設定したフォルダ
-
カレントフォルダ
- 開発マネージャを使用した場合の登録集原文の検索順序
-
開発マネージャからビルドを実行する場合,上記の2.,3.については,開発マネージャによって次の検索順序が仮定されます。
-
プロジェクト設定ダイアログボックスで,ファイルに対して設定した環境変数CBLLIBに指定されているフォルダ
-
プロジェクト設定ダイアログボックスで,プロジェクトに対して設定した環境変数CBLLIBに指定されているフォルダ
-
プロジェクトの作業フォルダ
-
プロジェクトに登録されている登録集原文が格納されているすべてのフォルダ
-
プロジェクトに登録されているCOBOLソースファイルが格納されているすべてのフォルダ
-
システムに設定されている環境変数CBLLIBに指定されているフォルダ
開発マネージャは上記1.〜6.のフォルダを仮定するため,1.の方法で明示的に検索フォルダを設定してください。
-
(10) CBLLINKER
コンパイラが呼び出すリンカを変更したい場合にLINKコマンド(LINK.exe)の絶対パス名を指定します。
詳細は,マニュアル「COBOL2002 ユーザーズガイド」の「リンカパスの切り替え機能」を参照してください。
- (例)
CBLLINKER=C:\Program Files\…\BIN\LINK.exe
- 注意事項
-
-
LINKコマンドを相対パスで指定しないでください。指定した場合の動作は保証しません。
-
この製品が同梱するLINKコマンドより古いバージョンのLINKコマンドを指定しないでください。バージョンは,LINKコマンドファイルのプロパティからファイルバージョンを参照してください。古いバージョンのLINKコマンドを指定した場合の動作は保証しません。
-
この環境変数を指定する場合,環境変数PATHとLIBには,環境変数に指定したLINKコマンドが必要とするパスをこの製品のパスより優先して指定してください。指定しなかった場合の動作は保証しません。
-
この環境変数を指定する場合,環境変数CBLRESOURCECOMPILERおよび環境変数CBLMANIFESTTOOLを同時に指定してください。同時に指定しなかった場合の動作は保証しません。
-
この環境変数に指定する値の長さは256バイト以内でなければなりません。
256バイトを超える値を指定した場合,エラーメッセージが出力されて,コンパイルが中止されます。このとき,生成対象のファイル(実行可能ファイルまたはDLLファイル)が残っている場合は削除します。
-
COBOL2002コンパイラはLINKコマンドの起動に失敗した場合,エラーメッセージが出力されて,コンパイルが中止されます。このとき,生成対象のファイル(実行可能ファイルまたはDLLファイル)が残っている場合は削除します。
-
(11) CBLLINKINTERVAL
ccbl2002コマンドまたはccblコマンドで,実行可能ファイルまたはDLLを作成する際に,対象ファイルへのアクセス処理の前に空ける間隔をミリ秒単位で指定します。指定できる範囲は,1〜60,000であり,省略時および範囲外の値の場合は,この環境変数の指定を無効とします。
なお,環境変数CBLLINKINTERVALの指定が有効な場合は,対象ファイルが占有可能かどうかも合わせてチェックします。
(例)対象ファイルへのアクセス間隔を200ミリ秒とする場合
CBLLINKINTERVAL=200
ccbl2002コマンドまたはccblコマンドから呼び出すLINKコマンドやMTコマンドは,出力ファイルがOSやウィルスチェッカなどから,一時的に共有されることが原因でエラーになる場合があります。
この場合,時間をおいて再コンパイルしてください。時間をおいても問題が解決しないときは,環境変数CBLLINKINTERVALで対象ファイルへのアクセス間隔を変更した状態で再コンパイルすることで対処してください。
- 注意事項
-
-
環境変数CBLLINKINTERVALで指定する値は,開発環境で使用されるディスク装置,マシン環境,およびシステムの仕様に依存するため,実際の試行(検証)によって最適な値を使用してください。
-
環境変数CBLLINKINTERVALの指定は,実行可能ファイルまたはDLLを作成する際のファイルアクセスごとに有効となります。また,ファイルアクセスごとに,ファイルの占有ができるかを最大で5回チェックします。このため,環境変数CBLLINKINTERVALを指定すると,指定した値以上にコンパイル時間が遅くなります。
-
環境変数CBLLINKINTERVALが有効な場合,開発マネージャでのビルド,クイックビルド,リビルドの際にもそれぞれの処理時間が遅くなります。また,それぞれの処理でのリンクの実行中は,リンクが完了するまでビルドの中止がすぐにできないため,環境変数CBLLINKINTERVALを指定する場合は注意が必要です。
-
(12) CBLMANIFESTTOOL
コンパイラが呼び出すマニフェストツールを変更したい場合にMTコマンド(MT.exe)の絶対パス名を指定します。
詳細は,マニュアル「COBOL2002 ユーザーズガイド」の「リンカパスの切り替え機能」を参照してください。
- (例)
-
CBLMANIFESTTOOL=C:\Program Files\…\bin\MT.exe
- 注意事項
-
-
MTコマンドを相対パスで指定しないでください。指定した場合の動作は保証しません。
-
この環境変数を指定する場合,環境変数PATHには環境変数に指定したMTコマンドが必要とするパスをWindows 10 SDKのbinへのパスより優先して指定してください。指定しなかった場合の動作は保証しません。
-
この環境変数を指定する場合,環境変数CBLLINKERおよび環境変数CBLRESOURCECOMPILERを同時に指定してください。同時に指定しなかった場合の動作は保証しません。
-
この環境変数に指定する値の長さは256バイト以内でなければなりません。256バイトを超える値を指定した場合,エラーメッセージが出力され,コンパイルが中止されます。このとき,生成対象のファイル(実行可能ファイルまたはDLLファイル)が残っている場合は削除します。
-
COBOL2002コンパイラはMTコマンドの起動に失敗した場合,エラーメッセージが出力され,コンパイルが中止されます。このとき,生成対象のファイル(実行可能ファイルまたはDLLファイル)が残っている場合は削除します。
-
(13) CBLPIDIR
プログラム情報ファイル(.cbp)を任意のフォルダに生成したい場合に設定します。プログラム情報ファイルは,テストデバッガを使用するときに必要となるファイルです。設定できるフォルダは一つだけです。
- (例)
CBLPIDIR=c:\temp
(14) CBLREP
リポジトリファイル(.rep)を任意のフォルダに生成,または更新したい場合に,出力先のフォルダを指定します。指定されたフォルダは,リポジトリ段落で指定された名前の翻訳単位(関数定義,クラス定義,またはインタフェース定義)を含むリポジトリファイル参照時の検索対象となります。
詳細は,マニュアル「COBOL2002 ユーザーズガイド」の「定義別のコンパイル方法とリポジトリファイル」についての説明を参照してください。
- 規則
-
-
指定するフォルダが複数ある場合は,各フォルダをセミコロン(;)で区切って指定します。
-
指定したフォルダ群に同じ名称のリポジトリファイルが複数存在する場合,先に指定したフォルダに含まれるリポジトリファイルを優先します。
-
生成または更新時に,同じ名称のリポジトリファイルが存在しない場合,最初に指定されたフォルダにリポジトリファイルを新規に生成します。
-
リポジトリファイル検索時に同じ名称のリポジトリファイルが見つからなければ,カレントフォルダが検索されます。また,環境変数CBLREPの指定がない場合,リポジトリファイルの生成,更新,および検索は,カレントフォルダが対象となります。
-
- (例)
-
フォルダとして¥usr¥user¥replibを指定します。
CBLREP=\usr\user\replib
(15) CBLRESOURCECOMPILER
コンパイラが呼び出すリソースコンパイラを変更したい場合にRCコマンド(RC.exe)の絶対パス名を指定します。
詳細は,マニュアル「COBOL2002 ユーザーズガイド」の「リンカパスの切り替え機能」を参照してください。
- (例)
CBLRESOURCECOMPILER=C:\Program Files\…\bin\RC.exe
- 注意事項
-
-
RCコマンドを相対パスで指定しないでください。指定した場合の動作は保証しません。
-
この環境変数を指定する場合,環境変数PATHには環境変数に指定したRCコマンドが必要とするパスをWindows 10 SDKのbinへのパスより優先して指定してください。指定しなかった場合の動作は保証しません。
-
この環境変数を指定する場合,環境変数CBLLINKERおよび環境変数CBLMANIFESTTOOLを同時に指定してください。同時に指定しなかった場合の動作は保証しません。
-
環境変数に指定する値の長さは256バイト以内でなければなりません。256バイトを超える値を指定した場合,エラーメッセージが出力されて,コンパイルが中止されます。このとき,生成対象のファイル(リソースファイル)が残っている場合は削除します。
-
COBOL2002コンパイラはRCコマンドの起動に失敗した場合,エラーメッセージを出力し,コンパイルを中止します。このとき,生成対象のファイル(リソースファイル)が残っている場合は削除します。
-
(16) CBLSYSREP
リポジトリ段落で指定された名前の翻訳単位(関数定義,クラス定義,またはインタフェース定義)を含むリポジトリファイルを検索するフォルダを指定します。
環境変数CBLSYSREPに指定したフォルダに格納されたリポジトリファイルは,リポジトリファイルに情報が格納されている翻訳単位と同じ名称の翻訳単位を作成してコンパイルした場合でも,上書きされることはありません。このため,環境変数CBLSYSREPには,主に(DLLとリポジトリファイルだけが提供されている場合など)生成元ソースファイルのないリポジトリファイルの検索フォルダを指定する場合に使用します。
詳細は,マニュアル「COBOL2002 ユーザーズガイド」の定義別のコンパイル方法とリポジトリファイルについての説明を参照してください。
- 規則
-
-
指定するフォルダが複数ある場合は,各フォルダをセミコロン(;)で区切って指定します。
-
リポジトリファイルの検索順序は,カレントフォルダが優先されます。
-
- (例)
-
フォルダとしてc:¥usr¥user¥sysreplibとd:¥users¥lib¥repを指定します。
CBLSYSREP=c:\usr\user\sysreplib;d:\users\lib\rep
(18) CBLVALUE
サブスキーマ節,作業場所節,画面節(WINDOW SECTION/SCREEN SECTION),報告書節,ファイル節で定義しているデータ項目のVALUE句の指定のない初期値を,このシステムで採用している計算機文字集合であるJIS8単位コードの順序位置(1〜256)で指定します。JIS8単位コードについては,マニュアル「COBOL2002 言語 標準仕様編」の「付録B 計算機文字集合」を参照してください。
実行単位でプログラムが最初に呼び出された場合だけ,この環境変数で指定した初期値をデータ項目に設定します。
この環境変数は,-CBLVALUEオプションを指定した場合だけ有効です。また,-CBLVALUEオプションを指定している場合で,この環境変数の指定がないとき,および指定した値に誤りがあるときは,1が仮定されます。
なお,この環境変数は次のデータ項目には適用されません。
-
VALUE句の指定のあるデータ項目
-
ADDRESSED句の指定のあるデータ項目
-
EXTERNAL句の指定のあるデータ項目
-
DYNAMIC LENGTH句のあるデータ項目
- 注意事項
-
初期化属性プログラムの作業場所節に対する初期化は,環境変数CBLVALUEと環境変数CBLINITVALUEが両方とも有効な場合と,どちらか片方だけが有効な場合とで初期値が異なります。詳細については,マニュアル「COBOL2002 ユーザーズガイド」の「プログラム属性」の「初期化属性プログラム」を参照してください。また,環境変数CBLINITVALUEについては,「(8) CBLINITVALUE」を参照してください。
(19) CBLV3UNICODE
-UniObjGenオプション指定時,-CompatiV3オプションおよび-V3Recオプションの指定を有効としたい場合に設定します。
ただし,この環境変数を設定した場合,-CompatiV3オプションは-JPN,Alnumオプションを仮定しません。
- (例)
CBLV3UNICODE=YES
なお,この環境変数は次の場合は無効となります。
-
この環境変数にYESを指定していない場合
-
-UniObjGenオプションを指定していない場合
UTF-8環境下での,この環境変数とコンパイラオプションの組み合わせによるメインフレーム(VOS3)COBOL85移行用オプションである,-CompatiV3オプション,-JPNオプション,および-V3Recオプションの有効/無効の関係を次に示します。
項番 |
環境変数CBLV3UNICODE |
-UniObjGenオプションの指定 |
指定するオプション |
||
---|---|---|---|---|---|
-CompatiV3 |
-JPN |
-V3Rec |
|||
1 |
YES |
あり |
○※ |
× |
○ |
2 |
YES以外 |
× |
× |
× |
|
3 |
YES |
なし |
○ |
○ |
○ |
4 |
YES以外 |
○ |
○ |
○ |
- 注意事項
-
-
-JPN,Alnumオプションが仮定されないことで,日本語項目,日本語編集項目,および日本語文字定数をそれぞれ英数字項目,英数字編集項目,および英数字定数として扱うことができないため,日本語項目と英数字項目間での比較および転記ができません。また,VOS3 COBOL85と日本語機能に差異があるため,日本語項目または英数字項目のどちらか一方に合わせる必要があります。VOS3 COBOL85とCOBOL2002との日本語機能の差異を次に示します。
表2‒23 VOS3 COBOL85とCOBOL2002との日本語機能の差異 項目
VOS3 COBOL85
COBOL2002※
日本語項目と英数字項目間の転記/比較
LANGOPT=(-D)の場合,転記または比較できる。
転記または比較できない。
INITIALIZE文(日本語項目の初期設定)
-
REPLACING指定がないと半角空白で初期化する。
-
REPLACING ALPHANUMERIC,ALPHANUMERIC-EDITED指定時,一意名2,定数1の値で初期化する。
-
REPLACING指定がないと全角空白で初期化する。
-
NATIONAL,NATIONAL-EDITED以外のREPLACING指定の場合,初期化されない。
INSPECT,STRING,UNSTRING文の日本語項目
XCOBOL=(N)オプションのときは1バイト単位で処理する。
日本語文字単位で処理する。
日本語項目パディング
LANGOPT=(-D)の場合,パディング文字に半角空白(X'40')を使用する。
パディング文字に全角空白(X'3000')を使用する。
-
-
-V3Rec,Variableオプションが指定できることで,日本語文字定数に標準コード文字が指定できます。日本語文字定数がUTF-16となり,標準コード文字も2バイトとなります。このことから,転記先のけた数を増やす必要があり,その日本語項目または日本語編集項目を参照している個所も修正が必要となる場合があります。例を次に示します。
(転記先のけた数の見直しの例)
01 ABC PIC N(2).
01 DEF PIC N(1).
:
MOVE N'あAB' TO ABC.
MOVE ABC(2:1) TO DEF.
日本語文字定数は3けた(6バイト)になることから,転記先のABCけた数を3けたに修正する必要があります。
また,標準コード文字が2バイトになることから,DEFに'AB'が格納されていることを期待する場合,標準コード文字'AB'を参照する部分参照の長さを1から2 に修正する必要があり,その転記先となるDEFのけた数も1から2に修正する必要があります。
(日本語文字定数の半角空白補完による転記先のけた数の見直しの例)
01 ABC PIC N(3).
:
MOVE N'あabc' TO ABC.
日本語文字定数の標準コード文字数が奇数になる場合は,標準コード文字数が偶数になるように日本語文字定数の終端に半角空白が補完されます。これによって,補完された半角空白を含み,日本語文字定数は5けた(10バイト)になることから,転記先となるABCのけた数を5けたに修正する必要があります。
-
-CompatiV3オプションが指定できることによって,報告書作成機能が拡張され,特殊名段落の定数10が指定可能となりますが,1バイト文字の指定が前提であるため,UTF-8で多バイトとなる半角かたかなは指定できません。このことから,定数10にUTF-8で多バイトとなる文字を指定している場合,UTF-8で1バイトとなる文字に変更する必要があります。
-
(20) 登録集環境変数
登録集原文を検索するフォルダを設定します。フォルダを複数指定する場合は,セミコロン(;)で区切って指定します。
- (例)
登録集名=\usr\user\copylib
登録集名は,英大文字と数字から成る8文字以内の任意の文字列で指定します。
ここで指定したフォルダは,環境変数CBLLIBで指定したフォルダよりも優先します。詳細については,マニュアル「COBOL2002 ユーザーズガイド」の原始文操作機能についての説明を参照してください。
(21) CBLFIXEDFORMLINE
固定形式正書法の1行の長さの制限値(バイト単位)を80または255で指定します。次の場合は,80を仮定します。
-
この環境変数の指定がない場合
-
この環境変数に80または255以外を指定している場合
-
次のコンパイラオプションのどれかが有効である場合
-V3Spec,-V3Rec,Fixed,-TDInf,-CVInf
- (例)
CBLFIXEDFORMLINE=255
- 注意事項
-
-
この環境変数に255を指定した場合でも,固定形式正書法のプログラム原文領域は,72カラムまでです。
-
この環境変数の指定値(制限値)を超える部分は無視されます。コンパイルリストの原始プログラムリストに,制限値を超える部分は表示されません。
-