IAR社製コンパイラを利用している開発環境のソースファイルをCasePlayer2で解析しています。Cオプションパラメータなどの設定をしていますが、解析エラーが解決しません。コンパイラの設定情報を利用して、効率的にCasePlayer2の設定を行う方法について教えてください。
よくある質問(FAQ)
IAR社製コンパイラを利用している開発環境のソースファイルをCasePlayer2で解析しています。Cオプションパラメータなどの設定をしていますが、解析エラーが解決しません。コンパイラの設定情報を利用して、効率的にCasePlayer2の設定を行う方法について教えてください。
IAR社製コンパイラの設定や定義済みマクロを利用する事で、効率的にCasePlayer2の解析設定を行う事が可能です。
IAR Embedded Workbench から「設定情報」や「定義済みマクロ」を抽出し CasePlayer2へ取り込みます。※ CasePlayer2へ取り込みを行っても解決しないエラーに関しては、手動で設定する必要があります。
IAR Embedded Workbench 上の操作で、「プロジェクト」-「オプション」-「C/C++コンパイラ」-「言語1」タブの「Cの派生言語」を参照します。「Cの派生言語」と CasePlayer2の「言語設定」の関係は 下記 の通りです。CasePlayer2の「言語設定」(① 又は ②)を行ってください。
①「Cの派生言語」がC89の場合は、CasePlayer2の「Cの言語仕様」 には「ANSI-C」を設定します。
②「Cの派生言語」がC99の場合は、CasePlayer2の「Cの言語仕様」 には「GNU-C」を設定します。
IAR Embedded Workbench 上でオプション設定後に再ビルドして「定義済みマクロ一覧」を出力します。
「プロジェクト」- 「オプション」-「C/C++コンパイラ」-「追加オプション」タブを開き、コマンドラインオプションの使用にチェックを入れ、コマンドラインオプションのところに、
--predef_macros gaio_macro
※"gaio_macro"は、任意の名称で問題ありません。
と入力してOKをクリックした後、ビルドを実施する事で、Outputフォルダに以下のファイルが出力されます。「gaio_macro.predef」PDF閲覧はこちら
★注意
ビルドの際に「エラー[Ms003]: could not open file "gaio_macro.predef" for writing」というエラーメッセージが出力されることがあります。これは IAR Embedded Workbenchが複数のソースファイルを別スレッドで並行してコンパイルするために、ファイルへの書き込みの競合が発生していることによるものです。この場合下図のように、1個のソースファイルのみを「コンパイル」することによって回避可能です(単一ソースのコンパイルで"gaio_macro.predef"は生成されます)。
抽出した「定義済みマクロ」一覧を CasePlayer2の「設定」タブの「プリプロセッサ」の設定にて、下図のように「プレインクルードファイル」に指定して下さい。ソースコードに「#include ...」記述を追加する必要はありません。「プレインクルードファイル」に設定したヘッダファイルは、全てのソースの解析時に最初に読み込まれ、解析に使用されます。