Everything
2.5.1 コンパイル・オプション

ここでは,コンパイル・フェーズのオプションについて説明します。

 

オプションに関する注意事項を以下に示します。

-

オプションの大文字/小文字は区別します。

-

パラメータとして数値を指定する場合は,10進数,または“0x”(“0X”)で始まる16進数での指定が可能です。
16進数のアルファベットは,大文字/小文字を区別しません。

-

パラメータとしてファイル名を指定する場合は,パス付き(絶対パス,または相対パス)での指定が可能です。
パスなし,および相対パスで指定する場合は,カレント・フォルダを基準とします。

-

パラメータ中に空白を含める場合(パス名など)は,そのパラメータ全体をダブルクォーテーション(")で囲んでください。

 

オプションの分類と説明を以下に示します。

【Professional版のみ】の記述があるオプションは,Professional版でのみ使用可能です。

表 2.2

コンパイル・オプション

分類

オプション

説明

バージョン/ヘルプ表示指定

-V

ccrlのバージョン情報を表示します。

-help

ccrlのオプションの説明を表示します。

出力ファイル指定

-o

出力ファイル名を指定します。

-obj_path

コンパイル途中に生成されるオブジェクト・ファイルを保存するフォルダを指定します。

-asm_path

コンパイル途中に生成されるアセンブリ・ソース・ファイルを保存するフォルダを指定します。

-prep_path

プリプロセス処理後Cソース・ファイルを保存するフォルダを指定します。

ソース・デバッグ制御

-g

ソース・デバッグ用の情報を出力します。

-g_line 【V1.02以降】

最適化時にソース・デバッグ用の情報を強化します。

デバイス指定関係

-cpu

CPUコアの種別を指定します。

-use_mda

乗除積和演算器を利用したコード生成を許可するか否かを指定します。

-use_mach【V1.11.00以降】

S3コアが提供する積和命令 MACHU/MACHの生成をサポートします。

言語規格指定

-lang【V1.06以降】

Cソース・ファイルおよびC++ソース・ファイルの言語規格を指定します。

処理中断指定

-P

入力したCソース・ファイルに対してプリプロセス処理のみ実行します。

-S

アセンブル以降の処理を実行しません。

-c

リンク以降の処理を実行しません。

プリプロセッサ制御

-D

プリプロセッサ・マクロを定義します。

-U

-Dオプションによるプリプロセッサ・マクロの定義を解除します。

-I

ヘッダ・ファイルを検索するフォルダを指定します。

-preinclude

コンパイル単位の先頭にインクルードするファイルを指定します。

-preprocess

プリプロセス結果の出力を制御します。

メモリ・モデル

-memory_model

コンパイル時のメモリ・モデルの種類を指定します。

-far_rom

ROMデータのデフォルトのnear/far属性をfarにします。

最適化

-O

最適化のレベル,または各最適化項目の詳細を指定します。

-goptimize

モジュール間最適化用の情報を生成します。

エラー制御

-no_warning_num

指定した警告メッセージの出力を抑止します。

-change_message【V1.06以降】

メッセージレベルを変更します。

-error_file

コンパイラのすべてのエラー・メッセージを1ファイルにまとめて出力します。

付加情報出力

-cref

静的解析情報ファイルを出力します。

-pass_source

出力するアセンブリ・ソース・ファイル中にCソース・プログラムをコメントとして出力します。

生成コード変更

-dbl_size

double型とlong double型の解釈を変更します。

-signed_char

signedもunsignedも付かないchar型を符号付きとして扱います。

-signed_bitfield

signedもunsignedも付かない型のビット・フィールドを符号付きとして扱います。

-switch

switch文のコード出力方式を指定します。

-volatile

外部変数,および#pragma address指定した変数をvolatile宣言したものとして扱います。

-merge_string

文字列リテラルをマージします。

-pack

構造体メンバのアライメントを1にします。

-stuff 【V1.10以降】

変数をアライメント数に応じたセクションに分けて配置します。

-stack_protector/-stack_protector_all 【Professional版のみ】 【V1.02以降】

スタック破壊検出コードを生成します。

-control_flow_integrity【Professional版のみ】【V1.06以降】

不正な間接関数呼び出しを検出するコードを生成します。

-insert_nop_with_label 【V1.05以降】

ローカル・ラベルおよびnop命令を挿入します。

機能拡張

-strict_std【V1.06以降】/-ansi【V1.05以前】

Cソース・プログラムを-langオプションで指定した言語規格に厳密に処理します。

-refs_without_declaration

未宣言,または宣言がプロトタイプでない関数を参照した場合にエラーにします。

-large_variable

変数の最大サイズを0xffffバイトとします。

-nest_comment

/* */コメントのネストを可能にします。

-character_set

日本語/中国語の文字コードを指定します。

MISRAチェック

-misra2004 【Professional版のみ】

MISRA-C:2004ルールによるソース・チェックを行います。

-misra2012 【Professional版のみ】 【V1.02以降】

MISRA-C:2012ルールによるソース・チェックを行います。

-ignore_files_misra 【Professional版のみ】

MISRA-C:2004ルールまたはMISRA-C:2012ルールによるソース・チェックの対象外のファイルを指定します。

-check_language_extension 【Professional版のみ】

言語拡張により部分抑止されるMISRA-C:2004ルールまたはMISRA-C:2012ルールのソース・チェックを有効にします。

-misra_intermodule 【Professional 版のみ】 【V1.08以降】

複数ファイルにまたがるMISRA-C:2012ルールによるソース・チェックを行います。

サブコマンド・ファイル指定

-subcommand

サブコマンド・ファイルを指定します。

アセンブラ・リンカ制御

-asmopt

アセンブル・オプションを指定します。

-lnkopt

リンク・オプションを指定します。

-asmcmd

アセンブラに渡すアセンブル・オプションをサブコマンド・ファイルで指定します。

-lnkcmd

最適化リンカに渡すリンク・オプションをサブコマンド・ファイルで指定します。

-dev

アセンブラ,および最適化リンカが使用するデバイス・ファイルを指定します。

コンパイラ移行支援機能

-convert_cc

他コンパイラ向けに書かれたプログラムの移行を支援します。

-unaligned_pointer_for_ca78k0r【V1.06以降】

ポインタ間接参照を1バイト単位でアクセスします。