2.4 コンパイラコマンドラインオプションの順序

一般的に、コンパイラコマンドラインオプションは 1 回のコンパイラ呼び出しにおいて任意の順序で使用できます。ただし、その結果が、コマンドラインで指定される順序や他の関連オプションとの組み合わせ方によって変わるオプションもあります。

コンパイラを使用すると、競合する可能性がある複数のオプションを使用することができます。つまり、メイクファイルや via ファイルなどの既存のコマンドラインに新しいオプションを追加することができます。
オプションが同じコマンドラインにある前のオプションをオーバーライドする場合、最後に指定されたオプションが必ず優先されます。以下に例を示します。
armcc -O1 -O2 -Ospace -Otime ...
これは、コンパイラによって以下のように実行されます。
armcc -O2 -Otime
環境変数 ARMCC5_CCOPT を使用すると、コンパイラコマンドラインオプションを指定できます。コマンドラインで指定されたオプションは、環境変数に指定されたオプションよりも優先されます。
コンパイラがどのようにコマンドラインを処理したかを確認するには、 --show_cmdline オプションを使用します。これは、コンパイラが使用したデフォルト以外のオプションを示します。via ファイルの内容は展開されています。ここで使用したサンプルでは、コンパイラは armcc -O2 -Otime を実行しますが、 --show_cmdline の出力には -O2 は含まれません。その理由は、 -O2 がデフォルトの最適化レベルであり、 --show_cmdline はデフォルトで適用されるオプションを表示しないためです。
関連する概念
2.2 コンパイラコマンドラインオプションのグループ別一覧
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.