IarBuild.exe とプリプロセッサ定義

テクニカル・ノート 191030

アーキテクチャ:

All

コンポーネント:

general

更新日:

2020/03/20 6:59

はじめに

コマンドラインからプロジェクトをビルドするには、IARコマンドラインビルドユーティリティIarBuild.exe が使用できます。 よくある質問は、コマンドラインでプリプロセッサ定義をIarBuild.exeに渡す方法です。

解説

コンパイラ arm\bin\iccarm.exe には  -D オプションがあります。
Help(ヘルプ)>C/C++ Development Guide(C/C++開発ガイド)を参照してください

ファイルのコンパイル時に MYDEFINE, を定義したい場合は次のようにします:

iccarm.exe main.c -D MYDEFINE=1

ただし、IarBuild.exe -Dオプションのようなものがないため、この方法でコマンドラインからプリプロセッサ定義を指定することはできません。

代替の解決方法1 – ビルド構成を利用

いくつかの製品バリアントがあり、PROD_TYPEプリプロセッサシンボルに基づいて、プロジェクトで異なる方法で処理する必要がある場合に、適切な方法です。  Project(プロジェクト)>Edit Configurations(ビルド構成の編集)によって、さまざまな構成を作成できます。

以下の例では、ProdType1、ProdType2、およびProdType3という名前の新しいビルド構成を作成し、Project(プロジェクト)>Options(オプション)>C/C++ Compiler(C/C++コンパイラ)>Preprocessor(プリプロセッサ)>Defined symbols(シンボル定義)PROD_TYPEに異なる定義をしています。

Configuration example 1

この後、次の引数を使用してIarBuild.exeを呼び出すと、各々のPROD_TYPEプリプロセッサシンボルが設定されます。

IarBuild.exe project.ewp -build ProdType1
IarBuild.exe project.ewp -build ProdType2
IarBuild.exe project.ewp -build ProdType3

Configuration example 2

代替の解決方法2 – Use custom argument variables

バージョン番号変数のような頻繁に更新する必要がある変数がある場合は、ビルド構成の利用に代えて、この方法が適しています。 この方法では、カスタム引数変数を使用して、IarBuild.exe.に -varfile オプションを与えます。

ステップ 1:
Tools(ツール)>Configure Custom Argument Variables(カスタム変数引数の設定)でカスタム引数変数ARGVAR_VER を設定します。

Custom argvars example 1

ステップ 2:
Project(プロジェクト)>Options(オプション)>C/C++ Compiler(C/C++コンパイラ)>Preprocessor(プリプロセッサ)>Defined symbols(シンボル定義)でシンボルVERSION をカスタム引数変数ARGVAR_VERを使用して次のように定義します。

VERSION=$ARGVAR_VER$

Custom argvars example 2

ステップ 3:
IDEによって生成された.custom_argvarsファイルを指定するオプション-varfileをつけてIarBuild.exeを呼び出します:

IarBuild.exe test.ewp -make Debug -log all -varfile test.custom_argvars

Custom argvars example 3

ファイルは、ワークスペースディレクトリに生成されるXMLファイルです。 このファイルは、外部エディタまたはスクリプトを使用して編集することで、VERSION プリプロセッサーシンボルの値を自動的に変更できます。

まとめ

上記の手順に従って、コマンドラインでプリプロセッサ定義をIarBuild.exeに渡すことができます。

 

全ての製品名は、それぞれの所有者の商標または登録商標です

申し訳ございませんが、弊社サイトではInternet Explorerをサポートしていません。サイトをより快適にご利用いただくために、Chrome、Edge、Firefoxなどの最新ブラウザをお使いいただきますようお願いいたします。