26.4.1 コンパイル
(1) -UniObjGenオプションと-UniEndianオプションの関係
-UniObjGenオプションと-UniEndianオプションの関係を,次に示します。
表26-2 -UniObjGenオプションと-UniEndianオプションの関係
-UniObjGenオプション指定 | -UniEndianオプション指定 |
---|
-UniEndian,Little | -UniEndian,Big | 指定なし(デフォルト) |
---|
HP-UX(IPF) AIX(32) AIX(64) | Linux(x86) Linux(x64) |
---|
指定あり | 日本語文字定数 | UTF-16LEに変換 | UTF-16BEに変換 | UTF-16BEに変換 | UTF-16LEに変換 |
英数字定数 | UTF-8に変換(-UniEndianオプションの影響はない) |
指定なし※ | 無変換 | 該当しない |
- 注※
- Linux(x86),Linux(x64)の場合,-UniObjGenオプションを指定しなければなりません。指定がない場合はコンパイルエラーとなります。
(2) -UniObjGenオプション指定時の注意事項
-UniObjGenオプション指定時の注意事項を次に示します。
- -UniObjGenオプション指定の有無が異なるCOBOLプログラムを混在して実行することはできません。混在して実行した場合,動作は保証しません。
- 前提条件を満たしていない環境で-UniObjGenオプションを指定してコンパイルした場合,コンパイルエラーとなります。前提条件を満たしていない環境を次に示します。
- コード変換ライブラリがインストールされていない場合
- 使用するコード変換ライブラリが前提バージョンに満たない場合
- NATIVE指定以外の符号系名を,実行用計算機段落のPROGRAM COLLATING SEQUENCE句,またはSORT,MERGE文のCOLLATING SEQUENCE句に指定した場合,コンパイルエラーとなります。
- -Switch,EBCDIKオプションまたは-Switch,EBCDICオプションと-UniObjGenオプションを同時に指定した場合,コンパイルエラーとなります。
- コンパイル中にコード変換に失敗した場合,コンパイルエラーとなります。
- HP-UX(IPF),AIX(32),AIX(64)の場合,EUC環境下で-UniObjGenオプションを指定すると,コンパイルエラーとなります。
- Linux(x86),Linux(x64)の場合,-UniObjGenオプション指定時に環境変数CBLSRCENCODINGを指定していないと,コンパイルエラーとなります。
- Linux(x86),Linux(x64)の場合,UTF-8環境下で-UniObjGenオプションを指定していないと,コンパイルエラーとなります。
- -JPNオプション,-CompatiV3オプション,-V3Recオプションは指定できません。Linux(x86),Linux(x64)の場合,コンパイラ環境変数CBLV3UNICODEにYESを指定すると,-UniObjGenオプションと-CompatiV3または-V3Recオプションを同時に指定できます。コンパイラ環境変数CBLV3UNICODEについては,「31.6.3 コンパイラ環境変数の詳細」の「(15) CBLV3UNICODE(Linux(x86),Linux(x64)で有効)」を参照してください。
(3) -UniEndianオプション指定時の注意事項
-UniEndianオプション指定時の注意事項を次に示します。
- -UniEndianオプション指定(Little/Big)の異なるCOBOLプログラムを混在して使用することはできません。混在して使用した場合,動作は保証しません。