プロジェクトの設定
ModelifyはAtlasを用いてC言語のコードを分析します。C言語のコードをマップするためには、Atlasはプロジェクトをビルドするためにコンパイラが必要する設定と同じ設定を必要とします。以下のガイドは既存のC言語のベースをEclipseのCDTプロジェクトにインポートし、AtlasおよびModelifyと一緒に使用する準備を行うための一般的な方法を説明しています。
プロジェクトで特別なコンパイラ(gcc以外)を必要とする場合、追加のCDT機能をインストールして、ツールチェーンに対応する必要があるかもしれません。Modelifyはgccとgccベースのクロスコンパイラをサポートした状態で配布されます。
C言語のコンパイラをインストール
以下の項目では、C言語のコードをEclipseにインポート後、コンパイルを実行することができるように、C言語のコンパイラをインストールしたシステムが必要です。
既にC言語のコンパイラをインストールしている場合は、このセクションをとばしてください。まだインストールしていない場合は、以下の手順に従い、オープンソースのC言語のコンパイラをインストールすることが可能です。
- MinGW Installation Managerをダウンロードします。MinGWの詳細はMinGWの「はじめに」ページを参照してください。
- ダウンロードしたファイルを実行します。
- 重要 - パスにスペースがないMinGWインストールディレクトリを選択することを強く推奨します。
- 「Basic Setup」から以下のパッケージをインストールします:
- mingw32-base - C言語のコンパイル用のバイナリ(gcc、リンク等)
- o mingw32-gcc-g++ - C++言語のコンパイル向けのバイナリ(g++等)
- インポート予定のプロジェクトのいずれかがmakefileを持ち、当該のmakefileを用いてビルドを行う必要がある場合は、以下のパッケージを追加でインストールしてください:
- Msys-base - msysバイナリを加えます。Makefileで一般的に利用されるLinuxのコマンドが含まれています(rm、bash等)。
- makefileがGnuWin32のコマンドを必要とする場合、GnuWin32のプロジェクトをインストールすることも可能です。
必ずしもMinGWをWindowsのシステムパスに加える必要はありません。むしろ、その他のコマンドラインツールとの干渉を引き起こす可能性があるため、薦められません。
CDT代わりにMinGW/MSYSバイナリをEclipse CDTのビルドパスに追加することを推奨します:
- Modelifyを実行します
- ウィンドウ > 設定の順番にクリックします
- 開いたダイアログでC/C++ > ビルド > 環境の順番に選択していきます
- MinGWの「bin」フォルダを示す「PATH」を作ります(デフォルトはC:\MinGW\bin)。
- MSYSがインストール済みの場合は、MSYSもパスに加えてください(例 C:\MinGW\bin;C:\MinGW\msys\1.0\bin)。
- さらに必要に応じてGnuWin32のパスも追加します。
- 下のラジオボタンが「ネイティブ環境へ変数を追加」にセットされていることを確認し、設定を適用します。
C言語のプロジェクトをEclipseにインポート
- プロジェクトにMakefileが含まれている場合:
- ファイルメニューからインポートを選択します。
- ポップアップダイアログでC/C++を開き、Existing Code as Makefile Projectを選択して、次へをクリックします。
- プロジェクト名を入力し、インポートするディレクトリを指定してください。インデクサー設定に対するtoolchainを設定します。Gccを用いたクロスコンパイルには、Cross GCCを選択します。 Gcc以外の場合は、インストール済みの好きなコンパイラを選択してください。(例 MinGW GCC)
- Finishをクリックします。
- プロジェクトのビルドにMakefileが用いられることを確認します。
- プロジェクトの上で右クリックし、プロパティをクリックします。
- C/C++ ビルドを開き、Tool Chain エディターを選択します。
- Current ビルダーをGnu Make Builderに設定します。
- OKをクリックします。
- プロジェクトにMakefileが含まれていない場合:
- ファイルメニューから新規、続いてその他...の順に選択します。
- ポップアップダイアログでC/C++を開き、C プロジェクトを選択して、次へをクリックします。
- プロジェクトタイプの実行可能を開き、空のプロジェクトをクリックします。
- プロジェクト名を入力して、終了をクリックします。
- プロジェクトの上で右クリックし、インポートを選択します。
- ポップアップダイアログでGeneralを開き、ファイル・システムを選択して、次へをクリックします。
- 親ディレクトリを入力し、インポートするファイルを選んだら、終了をクリックします。
- 必要に応じてインクルードパスとプリプロセッサのディレクティブを調整してください。プロジェクト、フォルダ、もしくは、ファイルの上で右クリックし、プロパティを選択します。
- ポップアップダイアログでC/C++ ビルドを開きます。
- 必要に応じて設定を選択して、インクルードパスとプリプロセッサのディレクティブを追加します。CDT Helpもご覧ください。
- Tool Chain エディターを選択します。
- 「現在のtoolchain:」のオプションでお好みのツールチェーンを選択します(MinGW GCC等)。
- 「現在のBuilder:」が「CDT内部ビルダー」に設定されていることを確認してください。
C言語のプロジェクトをAtlasに対して設定
この時点で、お客様のC言語のプロジェクトは既に正しく設定されている可能性があります。Atlasがコンパイラの設定(インクルードパスやプリプロセッサのディレクティブ等)を取得するには、CDTがC言語のプロジェクトをビルドし、コンパイラの呼び出しを観察することができる必要があります。Atlasがビルドのプロセスでコンパイラの情報を確実に抽出することができるように、以下の手順を確認してください。
gccベースのクロスコンパイラをプロジェクトで利用している場合は、当該のコンパイラをプロジェクトで利用する設定を行ってください(出典 stackoverflow.com)。
- プロジェクト上で右クリックし、プロパティを選択します。
- プロジェクトでCross GCC Tool Chainを利用する設定を行っていることを確認してください。
- C/C++ Buildを開き、Tool Chain エディターを選択します。
- 現在のtoolchainをCross GCCに設定します。
- 適用をクリックします。
- ポップアップダイアログでC/C++ ビルドを選択します。
- 自動的にMakefileを生成にチェックを入れますが、適用しないでください。
- C/C++ ビルドで設定を選択します。
- ツール設定タブでCross Settingsを選択します。Prefixとパスに対するクロスコンパイラの設定を行ってください。例:
- Prefix: arm-none-eabi-
- パス: <path to compiler>
- 再びC/C++ ビルドを選択し、自動的にMakefileを生成のチェックを外します。
- 適用をクリックします。
以下の手順は、ビルドしたファイルを正確にマッピングする上で必要な変更を詳しく説明するものです。
- プロジェクトにMakefileが含まれている場合、追加の手順を踏み、ビルド中にコンパイラの呼び出しをCDTが観察することができるようにする必要があります。大規模なプロジェクト(Linux等)は可読性を考慮して呼び出しのテキスト全文を表示していませんが、通常は冗長モードで呼び出しを表示させる方法があります。
- C/C++ ビルドを選択し、「デフォルト・ビルド・コマンドを使用」のチェックを外します。コマンドを調整し、出力を冗長化します。「make V=1」や「make VERBOSE=1」が一般的に用いられます。
- ビルドを観察するようにAtlasを設定します:
- プロジェクト上で右クリックし、プロパティを選択します。
- Atlas C ビルドを選択します。
- ビルドコマンドで、リストにプロジェクトで利用するコンパイラの名前が存在しない場合は追加してください。プロジェクトのビルドの出力を解析するとき、Atlasがこれらのコンパイラの呼び出しを探すためです。
- マッピングするソースファイルで、現在のビルドのファイルのみをマッピングを選択します。
- OKをクリックします。
ビルド
プロジェクトのマッピングを正確に実行するには、コンパイラの呼び出しを観察することができるようにビルドする必要があります。
- プロジェクトがCDTにより生成されたMakefileを利用している場合、もしくは、Makefileに「all」ターゲットが含まれている場合
- プロジェックト・エクスプローラー内のプロジェクト上で右クリックし、プロジェクトのビルドを選択します。
- Makefile 手書きのMakefileがプロジェクトに含まれている場合
- プロジェックト・エクスプローラー内のプロジェクト上で右クリックし、Build Targetsを開いて、作成…を選択します。
- In ターゲット名でビルドのターゲットの名前を入力します。続いて、OKをクリックします。
- プロジェックト・エクスプローラービューでプロジェクトを開き、Build Targetsを開いて、ターゲット上でダブルクリックします。
マッピング
プロジェクトを正しくビルドしたら、Atlasを使ってマッピングを行うことができます。
- プロジェックト・エクスプローラー内のプロジェクト上で右クリックし、Atlasを開き、マッピングを有効化を選択します。
- メインメニューでAtlasを選択し、ワークスペースを再マッピングを選んでください。
トラブルシューティング
Atlasが適切にプロジェクトのマッピングを実行することができなかった場合、以下の手順を試してください:
- プロジェクトをクリーンおよびビルドし、ビルドの出力が正確に解析されていることを確認します:
- パッケージエクスプローラ内のプロジェクト上で右クリックし、プロパティを選択します。
- Atlas C ビルド > ビルド設定ファイルの順に確認していきます。
- ビルド設定ファイルで開くボタンが灰色になっている場合、あるいは、ファイルが見つからなかったと記されている場合、Atlasがビルドの設定を見つけることができなかったことを意味します。C/C++ ビルドを選択し、「デフォルト・ビフド・コマンドを使用」のチェックを外してください。
- コマンドを調整し、出力を冗長化してください。必要なフラグは異なる可能性がありますが、一般的に「V=1」や「VERBOSE=1」等が用いられます。
- プロジェクトのクリーンとビルドを行います。ビルド設定ファイルがゼロではないことを確認してください。
- o Atlasのコードマップがまだ空の場合、Makefileが変化するディレクトリを誤って報告している可能性があります。
- パッケージエクスプローラ内のプロジェクト上で右クリックし、プロパティを選択します。
- C/C++ ビルドを選択し、「デフォルト・ビルド・コマンドを使用」のチェックを外してください。
- フラグ「--print-directory」を追加します。
- プロジェクトのクリーンとビルドを実行します。
Atlasの設定がうまくいかない場合、support@ensoftcorp.comに連絡を取り、支援を要請してください。