組み込みソフトウェアの開発において、Linuxマシンをビルド環境として利用しているケースがあります。
そのような場合、スタンダード Make C/C++ プロジェクトを利用すると、リモートシェル(「rsh」や「ssh」)とsambaのファイル共有などを利用して、以下のようにEclipse上からLinuxマシンのコンパイラを起動することが可能となります(図1)。
リモートビルドの手順を説明する前に「スタンダード Make C プロジェクト」の概要について簡単に紹介します。
「スタンダード Make Cプロジェクト」と「管理 Make C プロジェクト」との違いはビルドの設定方法です。
スタンダード Make Cプロジェクトは、makefileと連携してビルドを行うプロジェクトです。CDTからのビルド指示にmakeコマンドを連携させてビルドを実行します。
ビルド/クリーンに対応するコマンドやコマンドオプションの変更は、プロジェクトの[プロパティー]画面の「C/C++ Make プロジェクト」にて行います(画面6)。
それぞれの設定項目の意味は下記のようになります。通常は「ビルド・ディレクトリー」だけをmakefileの格納ディレクトリに変更すれば、ほかを変更する必要はありませんが、お使いの環境に合わせて修正してください。
名前 | 説明 | デフォルト値 |
---|---|---|
ビルド・コマンド | プロジェクトのビルドを選択した際に起動されるコマンド | make |
ビルド(インクリメンタル・ビルド) | プロジェクトのビルドを選択した際にコマンドに渡されるオプション | all |
クリーン | プロジェクトのクリーンを選択した際にコマンドに渡されるオプション | clean |
ビルド・ディレクトリー | ビルド・コマンドが実行されるディレクトリ。makefileが格納されたディレクトリを指定する | なし |
それでは、sambaとrshを利用したリモートビルド方法について説明します。ここでは、以下の環境が準備されていることを前提に説明します。
まず、samba共有されているフォルダをネットワークドライブで共有します。
共有したネットワークドライブに、ソース格納用のフォルダ「src」を作成し、その中に前回の記事で作成した「Addition.h」と「Addition.c」を格納します。同フォルダに下記のmakefileを格納します。
CC = gcc C_SRCS += ../src/Addition.c OBJS += ../src/Addition.o C_DEPS += ../src/Addition.d CFLAGS = -c -Wall -g -MMD -MF"$(C_DEPS)" LD = $(CC) LDFLAGS = -o addition : $(OBJS) $(LD) $(LDFLAGS) addition $(OBJS) $(OBJS):$(C_SRCS) Addition.h $(CC) $(CFLAGS) -o"$@" "$<" all : ${MAKE} addition .PHONY : clean clean : rm addition $(OBJS)
makefileを作成したら、以下の手順でスタンダード Make C プロジェクトを作成します。
新規にソースフォルダを作成し、先ほどsamba共有フォルダ上に作成した、srcフォルダにリンクを設定します。
「sample_remote」プロジェクトを選択して、[ファイル]−[新規]−[フォルダー]を選択します。[新規フォルダー作成]ダイアログが表示されるので、[拡張]ボタンをクリックし、samba共有フォルダ内の「src」にリンク設定をします。以下では「F:\addition\src」にリンクを設定しています(画面7)。
設定が完了したら、[終了]ボタンをクリックします。リンク設定された「src」フォルダが作成されます。
「sample_remote」プロジェクトに、makefile格納用の“make”フォルダを作成し、その中に以下のようなリモートシェルを実行するmakefileを作成します。リモートマシン名、ユーザー名はお使いの環境に合わせて修正してください。
all : rsh リモートマシン名 -l ユーザ名 -n "~/make.sh all" .PHONY : clean clean : rsh リモートマシン名 -l ユーザ名 -n "~/make.sh clean"
makefile内に設定したリモートマシンのユーザーのホームディレクトリに以下のようなmakeコマンド実行用のシェルを格納します。「makefileのあるディレクトリ」はお使いの環境に合わせて変更してください。
#!/usr/bin/sh cd makefileのあるディレクトリ make $1
「sample_remote」プロジェクトの最終的な構成は下記のようになります(画面8)。
「sample_remote」プロジェクトの[プロパティー]画面から、「C/C++ Make プロジェクト」を選択し、「ビルド・ディレクトリー」にmakefileが保存されたディレクトリを選択します。
ここでは“\sample_remote\make”と指定して[OK]ボタンをクリックしてください(画面9)。
ここまでの設定が完了したら、管理 Make C プロジェクトと同様にプロジェクトのクリーンを行ってください。コンソールのログを参照するとリモートマシン上のコンパイラが実行され、実行形式ファイルが作成されたことが確認できると思います。
CDTのグラフィカルビルド機能により、リモートマシン上のコンパイラも起動できました。
このようにCDTでは、既存のクロスコンパイル環境に対して、グラフィカルなビルド環境を提供します。
コンパイラのエラーフォーマットが、CDTの解析できるフォーマット(GNU形式)であれば、Eclipse上のC/C++エディタと連携したエラージャンプ機能を活用できます。また、バイナリーがCDTのバイナリー・パーサーに対応していれば、アプリケーションのシンボル情報もEclipse上から参照できるようになります。
Copyright © ITmedia, Inc. All Rights Reserved.