プロジェクトの設定
ModelifyはAtlasを用いてC言語のコードを分析します。C言語のコードをマップするためには、コンパイラがプロジェクトをビルドするために必要な設定と同じ設定が、Atlasに必要です。以下のガイドでは、既存のC言語のベースをEclipseのCDTプロジェクトにインポートし、AtlasおよびModelifyで使用する準備を行うための一般的な方法を説明しています。
Cコンパイラのインストール
この後のセクションでは、Cコンパイラがシステムにインストールされていることを前提としています。
既にCコンパイラがインストールされている場合は、このセクションをとばしてください。それ以外の場合には、以下の手順に従っていただくと、オープンソースのCコンパイラをインストールできます。
MSYS2からgcc (MinGW) とmakeをインストールする
- https://www.msys2.org/の インストールの項の1-5 の手順に従ってください。
- インストールパスには、空白を含まないものを選択することをお勧めします。デフォルトは、C:\msys64 です
- gcc とmakeをインストールします。 上記の手順5で、MSYS2ターミナルが開らかれるので、次のコマンドを実行して、UCRT64バージョンのツールをインストールします。
pacman -S mingw-w64-ucrt-x86_64-gcc make
C コンパイラ を使用するようにModelify を設定する
コンパイラとビルドツールのインストールが、PATH環境変数にまだない場合には、Modelify がコンパイラを見つけるように設定することができます。次の手順は、前の項目でMinGW コンパイラをインストールしたことを前提としています。
- Modelify を実行します
- Click Window > Preferences をクリックします
- ダイアログが開かれるので C/C++ > Build > Environment を選択します
- MSYS2/MinGW bin フォルダを指定する変数PATH を作成します。UCRT64バージョンのツールについては、デフォルトのインストール場所は、C:\msys64\ucrt64\bin です。
- 一番下のラジオボタンが「追加」に設定されていることを確認して、設定を適用します。
ツールチェーンサポートのインストール(オプション)
Modelify は、gcc とgccベースのクロスコンパイラ ツールチェーンのサポートとともに配布されます。プロジェクトが、(gcc 以外の)特別なコンパイラを必要とする際、ツールチェーンをサポートするために、追加のCDT 機能のインストールが必要な場合があります。
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に連絡を取り、支援を要請してください。