2017年5月16日

  • C
  • EV3技術情報
  • ソフトウェア

ソースファイルを複数のディレクトリに分ける

EV3RTパッケージ β6-3以降、hrp2/sdk/workspaceディレクトリ以下にあるアプリケーションのディレクトリ内で、ソースファイル(app.hやapp.c)を複数のディレクトリに分けて管理できるようになりました。
(2017/05/12現在、EV3RTパッケージは、β7が最新です。)

 

EV3RTパッケージのダウンロードはこちら
http://dev.toppers.jp/trac_user/ev3pf/wiki/Download#ダウンロード

 

ここでは、EV3RTパッケージのサンプルプログラム「helloev3」を用いて、ソースファイルを複数のディレクトリに分ける方法を紹介します。

 

サンプルプログラム「helloev3」のディレクトリの中は、右図のようになっています。すべてのファイルが1つのディレクトリに収められています。

 

 

 

◇方法1:ヘッダファイルとソースファイルを分ける
(ヘッダファイルはapp.hなど拡張子がhのファイル、ソースファイルはapp.cなど拡張子がcのファイルを指します。)

 

アプリケーションディレクトリの中に、「include」と「src」という名称のディレクトリを追加します。「include」ディレクトリにはヘッダファイルを、「src」ディレクトリにはソースファイルを格納します。

 

 

このような構成のとき、「helloev3」ディレクトリ直下のファイルと、追加した2つのディレクトリ内のファイルを対象にビルドが実行されます。

 

 

◇方法2:ソースファイルを任意の名前の複数のディレクトリに分ける

 

アプリケーションディレクトリの中に、任意の名前のディレクトリを用意します。そこにソースファイルをわけて格納します。
例えば右図のようになります。

 

 

追加した任意の名前のディレクトリをビルドの対象とするためには、 /hrp2/sdk/common/Makefile.prj.common を修正します。

 

アプリケーションディレクトリ内のすべてのディレクトリのファイルを対象としてビルドするには、Makefile.prj.commonにAPPL_DIR += $(foreach dir,$(shell find $(APPLDIR) -type d),$(dir))を追加します。
アプリケーションディレクトリ内のすべてのファイルがビルド対象となります。

 

 

アプリケーションディレクトリ内の一部のディレクトリのファイルのみを対象としてビルドするには、Makefile.prj.commonにAPPL_DIR += $(foreach dir,$(shell find $(APPLDIR) -type d -name ディレクトリ名),$(dir))を追加します。例えば下図のようになります。

 

 

この例の場合、「helloev3」ディレクトリ直下のファイルと、「src1」・「src2」ディレクトリ内のソースファイルはビルドの対象になりますが、「src3」ディレクトリ内のソースファイルは無視されます。

(2016/05/12現在)

SPIKE