ここでは,コンパイル・フェーズのオプションについて説明します。
オプションに関する注意事項を以下に示します。
-
オプションの大文字/小文字は区別します。
パラメータとして数値を指定する場合は,10進数,または“0x”(“0X”)で始まる16進数での指定が可能です。 16進数のアルファベットは,大文字/小文字を区別しません。
パラメータとしてファイル名を指定する場合は,パス付き(絶対パス,または相対パス)での指定が可能です。 パスなし,および相対パスで指定する場合は,カレント・フォルダを基準とします。
パラメータ中に空白を含める場合(パス名など)は,そのパラメータ全体をダブルクォーテーション(")で囲んでください。
オプションの分類と説明を以下に示します。
表 2.2
コンパイル・オプション
分類
オプション
説明
バージョン/ヘルプ表示指定
-V
ccrhのバージョン情報を表示します。
-h
ccrhのオプションの説明を表示します。
出力ファイル指定
-o
出力ファイル名を指定します。
-Xobj_path
コンパイル途中に生成されるオブジェクト・ファイルを保存するフォルダを指定します。
-Xasm_path
コンパイル途中に生成されるアセンブリ・ソース・ファイルを保存するフォルダを指定します。
-Xprep_path
プリプロセス処理済みファイルを保存するフォルダを指定します。
ソース・デバッグ制御
-g
ソース・デバッグ用の情報を出力します。
-g_line 【V1.05.00以降】
最適化時にソース・デバッグ用の情報を強化します。
デバイス指定
-Xcommon
デバイス共通のオブジェクト・ファイルを生成することを指定します。
-Xcpu
指定したコア向けのオブジェクトを生成することを指定します。
処理中断指定
-P
入力ファイルに対してプリプロセス処理のみ実行します。
-S
アセンブル以降の処理を実行しません。
-c
リンク以降の処理を実行しません。
プリプロセッサ制御
-D
プリプロセッサ・マクロ,およびアセンブラ・シンボルを定義します。
-U
-Dオプションによるプリプロセッサ・マクロ,およびアセンブラ・シンボルの定義を解除します。
-I
インクルード・ファイルを検索するフォルダを指定します。
-Xpreinclude
コンパイル単位の先頭にインクルードするファイルを指定します。
-Xpreprocess
プリプロセス結果の出力を制御します。
C言語制御
-lang 【V1.07.00以降】
言語規格を指定します。
-strict_std 【V1.07.00以降】
Cソース・プログラムを言語規格に厳密にあわせて処理します。
-Xenum_type
列挙型に対して,どの整数型として扱うかを指定します。
-Xvolatile
外部変数のvolatile化を指定します。
-Xcheck
Cソース・ファイルの互換性をチェックします。
-Xmisra2004 【Professional版のみ】
MISRA-C:2004ルールによるソース・チェックを行います。
-Xmisra2012 【Professional版のみ】
MISRA-C:2012ルールによるソース・チェックを行います。
-Xignore_files_misra 【Professional版のみ】
MISRA-C:2004またはMISRA-C:2012ルールによるソース・チェックの対象外のファイルを指定します。
-Xcheck_language_extension 【Professional版のみ】
言語拡張により部分抑止されるMISRA-C:2004またはMISRA-C:2012ルールのソース・チェックを有効にします。
-misra_intermodule 【Professional版のみ】 【V2.01.00以降】
複数ファイルにまたがるMISRA-C:2012ルールによるソース・チェックを行います。
-Xuse_fp16 【Professional版のみ】 【V1.05.00以降】
半精度浮動小数点型の使用を指定します。
日本語/中国語文字列制御
-Xcharacter_set
日本語/中国語の文字コードを指定します。
最適化指定
-O
最適化のレベル,または各最適化項目の詳細を指定します。
-Xintermodule
大域最適化を行います。
-Xinline_strcpy
標準ライブラリ関数strcpy,strcmp,memcpy,memsetの呼び出しをインライン展開します。
-Xmerge_string
文字列定数をマージします。
-Xalias
ポインタ指示先の型を考慮した最適化の指定を行います。
-Xmerge_files
複数のCソース・ファイルをマージしてコンパイルを行います。
-Xwhole_program
コンパイル対象ファイルがプログラム全体であることを仮定して最適化を行います。
-library 【V2.00.00以降】
標準ライブラリ関数の呼び出しをインライン展開します。
-goptimize 【V2.01.00以降】
リンク時最適化用の情報を生成します。
生成コード制御
-Xpack
構造体パッキングを行います。
-Xbit_order
ビット・フィールドのメンバの並び順を指定します。
-Xpass_source
出力するアセンブリ・ソース・ファイル中にCソース・プログラムをコメントとして出力します。
-Xswitch
switch文のコード出力方式を指定します。
-Xreg_mode
レジスタ・モードを指定します。
-Xreserve_r2
r2レジスタを予約します。
-r4 【V1.07.00以降】
r4レジスタの扱い方を指定します。
-Xep
epレジスタの扱い方を指定します。
-Xfloat
浮動小数点演算命令の生成を制御します。
-Xfxu 【V2.00.00以降】
FXU命令の使用を制御します。
-Xcall_jump
関数呼び出しの分岐命令の生成を制御します。
-Xfar_jump
far jumpの出力を制御します。
-Xdiv
除算に対して,div,およびdivu命令を生成します。
-Xcheck_div_ov
除算時にOVフラグのチェックを行います。
-relaxed_math 【V2.00.00以降】
厳密さより効率を重視した浮動小数点演算コードを生成します。
-Xuse_fmaf
積和演算命令を生成します。
-use_recipf 【V2.00.00以降】
recipf命令を生成します。
-approximate 【V2.02.00 以降】
浮動小数点演算を,同等の近似計算で置き換えます。
-Xunordered_cmpf
浮動小数点比較において,無効演算例外の検出を行います。
-Xmulti_level
マルチコア用プログラムの生成を指定します。
-Xpatch
パッチを適用します。
-Xdbl_size
double型およびlong double型の精度を指定します。
-Xround
浮動小数点定数の丸めモードを指定します。
-Xalign4
分岐先アドレスのアライメントを指定します。
-Xstack_protector/-Xstack_protector_all 【Professional版のみ】
スタック破壊検出コード生成を指定します。
-Xsection
データのデフォルト・セクションを指定します。
-stuff 【V2.03.00以降】
変数をアライメント数に応じたセクションに分けて配置します。
-Xcheck_exclusion_control 【V1.04.00以降】
排他制御チェックを有効にします。
-Xresbank_mode 【V2.00.00以降】
resbank命令の動作モードを指定します。
-insert_dbtag_with_label 【V1.06.00以降】
dbtag命令の挿入を制御します。
-store_reg 【Professional 版のみ】【V1.06.00以降】
制御レジスタへの書き込み処理の検出や,レジスタ間の同期化処理の挿入を制御します。
-control_flow_integrity 【Professional版のみ】 【V1.07.00以降】
不正な間接関数呼び出しを検出するコードを生成します。
-pic 【V1.07.00以降】
PIC機能を有効にします。
-pirod 【V1.07.00以降】
PIROD機能を有効にします。
-pid 【V1.07.00以降】
PID機能を有効にします。
情報ファイル出力制御
-Xcref
静的解析情報ファイルを出力します。
エラー出力制御
-Xerror_file
エラー・メッセージをファイルに出力します。
警告メッセージ出力制御
-Xno_warning
指定した警告メッセージの出力を抑止します。
-change_message 【V1.07.00以降】
指定した警告メッセージをエラーメッセージに変更します。
フェーズ個別オプション指定
-Xasm_option
アセンブル・オプションを指定します。
-Xlk_option
リンク・オプションを指定します。
サブコマンド・ファイル指定
@
サブコマンド・ファイルを指定します。