オプションは、コンパイラとコンパイラによって実行されるプログラムの両方の動 作を制御します。ここではオプションの規則について説明するとともに、各オプショ ンについてまとめた表を示します。データ型のチェックやアセンブル用に指定する オプションなど、使用頻度の高いオプションについて詳細に説明しています。
コンパイラ・オプションには次の規則が適用されます。
❏ オプションの先頭には 1 つまたは 2 つのハイフンが付きます。
❏ オプションは大文字小文字を区別します。
❏ オプションは 1 つの文字か一連の複数の文字で構成されます。
❏ 個々のオプションを結合させることはできません。
❏ 必須パラメータ付きのオプションは、パラメータの前にイコール符号を付けて指 定し、パラメータとそのオプションを明確に関連付ける必要があります。たとえ ば名前を未定義にするオプションを指定するには、-U=name と入力しても同じで す。推奨はしませんが、-U name または -Uname のように、スペースを入れても 入れなくてもオプションとパラメータを分けることはできます。
❏ 任意のパラメータ付きのオプションは、パラメータの前にイコール符号を付けて 指定し、パラメータとそのオプションを明確に関連付ける必要があります。たと えば、最大の最適化を指定するオプションは -O=3 と指定できます。推奨はしま せんが、-O3 のように、オプションの後に直接パラメータを指定することもでき ます。オプションと任意のパラメータの間にはスペースを入れられないため、
-O 3 は受け入れられません。
❏ ファイルとオプションは、-z オプションを除いて任意の順序で指定できます。
-z オプションは他のすべてのコンパイラ・オプションの後、かつリンカ・オプ ションの前に指定する必要があります。
コンパイラに対してデフォルトのオプションを定義するには、C_OPTION または
C2000_C_OPTION 環境変数を使用します。詳細は、2.4.2 項「デフォルトのコンパイ
ラ・オプションの設定方法(C_OPTION および C2000_C_OPTION)」(2-24 ページ)
オプションによるコンパイラの動作の変更
表 2-1. コンパイラ・オプションのまとめ
(a) コンパイラ / シェルを制御するオプション
オプション 機能 ページ
-@filename コマンド行の延長として、ファイルの内容を解釈し
ます。
2-13
-abs 絶対リスト・ファイルを作成します。このオプショ ンは、-z の後に指定する必要があります。
2-13
-b ユーザ情報ファイルを生成します。 2-13 -c リンクを使用不可にします(-z の無効化)。 2-13、
4-4
-Dname[=def] name を事前定義します(D は大文字)。 2-13
-Idirectory #include 検索パスを定義します(I は大文字)。 2-13、
2-29 -k アセンブリ言語(.asm)ファイルを保存します。 2-13 -n コンパイルまたはアセンブリの最適化のみを行いま
す。
2-14
-plink ポストリンク最適化を実行します。このオプション
は、-z の後に指定する必要があります。
5-1
-q 複数の進捗メッセージの出力を抑止します(静的実 行)。
2-14
-s オプティマイザのコメントをアセンブリ・ソース文 に差し込みます。オプティマイザのコメントがない 場合は、C/C++ のソースをアセンブリ・ソース文に 差し込みます。
2-14
-ss C/C++ のソースをアセンブリ・ソース文に差し込み
ます。
2-14、
2-44
-Uname name を未定義にします(U は大文字)。 2-14
-z リンクの実行を有効にします。 2-14
オプションによるコンパイラの動作の変更
表 2-1. コンパイラ・オプションのまとめ(続き)
(b) シンボリック・デバッグおよびプロファイルを制御するオプション
(c) デフォルトのファイル拡張子を変更するオプション
(d) ファイルを指定するオプション
オプション 機能 ページ
-g シンボリック・デバッグを有効にします
(--symdebug:dwarf と同等)。
2-15
--profile:breakpt ブレーク・ポイントに基づいたプロファイルの実行
を有効にします。
2-15
--profile:power パワー・プロファイルの実行を有効にします。 2-15
--symdebug:coff 代替 STABS デバッグ・フォーマットを使ったシンボ
リック・デバッグを有効にします。
2-15、 3-16
--symdebug:dwarf DWARF デバッグ・フォーマットを使ったシンボ
リック・デバッグを有効にします(-g と同等)。
2-15
--symdebug:none すべてのシンボリック・デバッグを無効にします。 2-15
--symdebug:skeletal 最適化を妨げない最小限のシンボリック・デバッグ
を有効にします(デフォルトの動作)。
2-15
オプション 機能 ページ
-ea[.]extension アセンブリ・ソース・ファイルのデフォルトの拡張子を
設定します。
2-20
-eo[.]extension オブジェクト・ファイルのデフォルトの拡張子を設定し
ます。
2-20
オプション 機能 ページ
-fafilename 拡張子に関係なく、filename をアセンブリ・ソース・ファ
イルとして識別します。デフォルトでは、コンパイラは
.asm または .s* (s で始まる拡張子)ファイルをアセンブ
リ・ソース・ファイルとして扱います。
2-19
オプションによるコンパイラの動作の変更
表 2-1. コンパイラ・オプションのまとめ(続き)
(e) ディレクトリを指定するオプション
(f) マシン固有のオプション
オプション 機能 ページ
-fbdirectory 絶対リスト・ファイルのディレクトリを指定します。 2-21
-ffdirectory アセンブリ・リスト・ファイルのディレクトリを指定し
ます。
2-21
-frdirectory オブジェクト・ファイルのディレクトリを指定します。 2-21
-fsdirectory アセンブリ・ファイルのディレクトリを指定します。 2-21
-ftdirectory 一時ファイルのディレクトリを指定します。 2-21
オプション 機能 ページ
-ma エイリアスが設定された変数と見なします。 2-16、 3-11
-md DP ロード命令の最適化を無効にします。 2-16
-me 高速分岐命令の生成を無効にします。 2-16 -mf サイズよりコード・スピードを優先した最適化を行いま
す。
2-16
-mi RPT 命令の生成を無効にします。 2-16
-ml ラージ・メモリ・モデルのコードを生成します。 2-16、
6-21 -mn -g が無効にした最適化を有効にします。 2-17、
3-16 -ms スピードよりサイズを優先した最適化を行います。 2-17、
3-18 -mt 単一メモリ・モデルのコードを生成します。 2-17
-mu C2XLP OUT 命令を C28x UOUT 命令としてエンコードしま
す。
2-17
-mv volatile 参照保護を有効にします。 2-17
-mx アセンブリ・マクロを展開します。 2-18
オプションによるコンパイラの動作の変更
表 2-1. コンパイラ・オプションのまとめ(続き)
(g) パーサを制御するオプション
(h) 前処理を制御するオプション
オプション 機能 ページ
-pe 組み込み C++ モードを有効にします。 6-6
-pi 定義優先の制御によるインライン展開を抑止します(ただ し、-O3 を指定した最適化は自動インライン展開を実行し 続けます)。
2-41
-pk K&R 互換性を許容します。 6-35
-pl file ロー・リスト情報を file に出力します。 2-38
-pm プログラム・モードでコンパイルします。 3-6
-pn 組み込み関数を無効にします。
---pr 緩和モードを有効にします。厳密な ANSI/ISO 違反を無視 します。
6-38
-ps 厳密な ISO モード(C/C++ に対してであり、K&R C に対し てではない)を有効にします。
6-38
-px file クロスリファレンス情報を file に出力します。 2-37
-rtti ランタイム型情報(RTTI)を有効にします。 6-5
オプション 機能 ページ
-ppa 前処理に続けてコンパイルを実行します。 2-30 -ppc 前処理だけを実行します。入力と名前が同じで拡張子が
.pp のファイルに、前処理された出力を(コメントを保持 したまま)書き込みます。
2-30
-ppd 前処理だけを実行します。ただし前処理された出力を書き 込むのではなく、標準 make ユーティリティへの入力に適
2-30
オプションによるコンパイラの動作の変更
表 2-1. コンパイラ・オプションのまとめ(続き)
(i) 診断を制御するオプション
(j) 最適化を制御するオプション
オプション 機能 ページ
-pdel num エラー数の上限を num に設定します。エラー数がこの指定
値に達すると、コンパイラはコンパイルを中止します
(デフォルトは 100 です)。
2-34
-pden 診断の識別子を、そのテキストと一緒に表示します。 2-34
-pdf outfile 診断情報を標準エラーではなく outfile に書き込みます。 2-34
-pdr 注釈(軽い警告)を発行します。 2-34
-pds num num の識別診断を抑止します。 2-34
-pdse num num の識別診断をエラーに分類します。 2-34
-pdsr num num の識別診断を注釈に分類します。 2-34
-pdsw num num の識別診断を警告に分類します。 2-34
-pdv 行の折り返し付きでオリジナル・ソースを表示する詳細な 診断情報を提供します。
2-34
-pdw 警告診断を抑止します(エラーは発行されます)。 2-34
オプション 機能 ページ
-O0 レジスタを最適化します。 3-2
-O1 -O0 による最適化を行い、さらにローカルな最適化を行
います。
3-2
-O2 または -Oo -O1 による最適化を行い、さらにグローバルな最適化を
行います。
3-2
-O3 -O2 による最適化を行い、さらにファイルに対して最適
化を行います。
3-2
-oisize 自動インライン展開サイズを設定します(-O3のみ)。 3-12
-ol0 または -oL0 ファイルが標準ライブラリ関数を変更することを、オプ
ティマイザに指示します。
3-4
-ol1 または -oL1 ファイルが標準ライブラリ関数を宣言することを、オプ
ティマイザに指示します。
3-4
オプションによるコンパイラの動作の変更
表 2-1. コンパイラ・オプションのまとめ(続き)
(k) 最適化を制御するオプション(続き)
(l) アセンブラを制御するオプション
オプション 機能 ページ
-op0 コンパイラに入力されるソース・コード外から呼び出され たり変更されたりする関数と変数をモジュールが含むこと を指定します。
3-6
-op1 モジュールはコンパイラに入力されるソース・コード外か ら変更される変数は含むが、ソース・コード外から呼び出 される関数は使用しないことを指定します。
3-6
-op2 モジュールは、コンパイラに入力されるソース・コード外 から呼び出されたり変更されたりする関数や変数をどちら も含まないことを指定します(デフォルト)。
3-6
-op3 モジュールはコンパイラに入力されるソース・コード外か ら呼び出される関数を含むが、ソース・コード外から変更 される変数は使用しないことを指定します。
3-6
-os オプティマイザの注釈をアセンブリ・ソース文に差し込み ます。
3-13
オプション 機能 ページ
-aa 絶対リスト・ファイルを生成します。 2-22 -ac アセンブリ・ソース・ファイルで大文字と小文字を区別し
ません。
2-22
-ad name シンボル name を定義します。 2-22
-ahc filename 指定した filename をコピーします。 2-22
-ahi filename 指定した filename を組み込みます。 2-22
-al アセンブリ・リスト・ファイルを生成します。 2-22