COBOL2002 操作ガイド
複数のコンパイラオプションを指定した場合の,各オプションの優先順位を次に示します。
コンパイラオプションを指定した個所によって,次の順に優先順位が高くなります。
表2-1 指定個所による優先順位(ccbl2002コマンドの場合)
| 優先度 | 指定個所 | オプションの形式 |
|---|---|---|
| 1 | ccbl2002のコマンド行に指定したオプション | 新形式 |
| 2 | 環境変数CBLCOPT2002に指定したオプション | 新形式 |
表2-2 指定個所による優先順位(ccblコマンドの場合)
| 優先度 | 指定個所 | オプションの形式 |
|---|---|---|
| 1 | ccblのコマンド行に指定したオプション | 旧形式 |
| 2 | 環境変数CBLCOPTに指定したオプション | 旧形式 |
| 3 | ccblコマンドで暗黙的に仮定されるオプション | 新形式 |
環境変数CBLCOPT2002,CBLCOPTについては,「2.4.3 コンパイラ環境変数の詳細」を参照してください。
コンパイラオプションには,オプション同士が背反の関係となっていたり,あるオプションを指定するとほかのオプションが仮定されたりするものがあります。このようなオプション間の優先順位を,次に示します。
次のコンパイラオプションを同時に指定した場合,あとに指定した方のオプションが有効となります。
次のコンパイラオプションを指定した場合,無効となるオプションがあります。
表2-3 オプションを指定すると,ほかのオプションが無効となる場合
| 指定したオプション | 無効となるオプション |
|---|---|
| -MainNotCBL |
|
| -Dll |
|
| -OleServer,Dll |
|
| -OleServer,Exe |
|
| -Compile |
|
| -Compile,CheckOnly |
|
| -StdMIA -Std85 -Std2002 |
|
| -StdMIA |
|
| -V3Spec |
|
| -Compati85,Syntax |
|
| -Repository,Gen |
|
| -UniObjGen |
|
| -IntResult,DecFloat40 |
|
| -CompatiV3 |
|
| -SimMain -SimSub -SimIdent |
|
-StdMIAオプション,-Std85オプション,-Std2002オプションは,同時に指定できません。同時に指定した場合,警告のメッセージが出力され,次の優先順位で有効となります。
次のコンパイラオプションを指定した場合,仮定されるオプションがあります。
表2-4 オプションを指定することによって,仮定されるオプション
| 指定したオプション | 仮定されるオプション |
|---|---|
| -OleServer,Dll |
|
| -OleServer,Exe |
|
| -V3Spec |
|
| -CompatiV3 |
|
| -DebugCompati |
|
| -DebugData |
|
| -DebugRange |
|
| -TestCmd |
|
| -TDInf |
|
| -TDInfと-Optimize,3を同時に指定 |
|
| -CVInf |
|
| -StdMIA,14 |
|
| -MaxDigits38および-IntResult,DecFloat40と-Optimize,3を同時に指定 |
|
| -SpaceAsZeroと-Optimize,3を同時に指定 |
|
次のコンパイラオプションは,同時に指定する必要があるオプションを指定しない場合,無視されます。
表2-5 同時に指定しないと,指定が無視されるオプション
| 指定したオプション | 同時に指定する必要があるオプション |
|---|---|
| -SQLDisp | -SQL,ODBC |
| -UniEndian | -UniObjGen |
| -V3RecFCSpace | -V3Rec |
| -DllInit | -Dllまたは,-OleServer,Dll |
| -V3RecEased | -V3Rec |
次のコンパイラオプションは,同時に指定する必要があるオプションを指定しない場合,コンパイルエラーとなります。
表2-6 同時に指定しないと,コンパイルエラーとなるオプション
| 指定したオプション | 同時に指定する必要があるオプション |
|---|---|
| -IntResult,DecFloat40 | -MaxDigits38 |
| -MaxDigits38 | -IntResult,DecFloat40 |
| -SpaceAsZero | -Compati85,All |
| -VOSCBL,OccursKey | -CompatiV3 |
| -VOSCBL,ReportControl | -CompatiV3 |
| -JPN,V3JPNSpace | -CompatiV3 |
同じオプションを重複して指定した場合,次の規則に従ってオプションが決定されます。なお,オプションごとのサブオプションの指定規則については,「2.3.4 コンパイラオプションの一覧」を参照してください。
最後に指定されたオプションが有効となります。
ただし,次の場合は,特定のサブオプションが有効となります。
前に指定したサブオプションの指定を引き継ぎ,あとに指定したサブオプションの指定が追加で有効となります。
デフォルト設定や環境変数などで指定済みのオプションを,コンパイル時に打ち消したい場合は,プリフィックス'no'の付いたコンパイラオプションを使用します。
例えば,環境変数CBLCOPT2002でオプション「-Details」が指定されている場合,コマンドラインで「ccbl2002 -noDetails …」と指定すると,環境変数CBLCOPT2002で設定済みのオプション「-Details」を打ち消せます。
All Rights Reserved. Copyright (C) 2013, 2016, Hitachi, Ltd.