コンパイル・オプションの設定,アセンブル・オプションの設定で,ファイルの依存関係に影響する変更(インクルード・ファイルのパスの変更,Cソース・ファイル,およびアセンブリ・ソース・ファイル中にヘッダ・ファイルのインクルード文を追加など)を行った場合は,該当ファイルの依存関係を更新する必要があります。
ファイルの依存関係の更新は,プロジェクト全体(メイン・プロジェクト,およびサブプロジェクト),またはアクティブ・プロジェクトに対して行います。
[ビルド]メニュー→[依存関係の更新]を選択してください。
[ビルド]メニュー→[アクティブ・プロジェクトの依存関係の更新]を選択してください。
図 2.61 | [アクティブ・プロジェクトの依存関係の更新]項目 |
備考 | ファイルの依存関係を更新する際,エディタ パネルで編集中のファイルがある場合は,該当ファイルを一括して保存します。 |
依存関係ファイル(インクルード・ファイル)は,プロジェクト・ツリー上のソース・ファイルにぶら下げて表示することができます。
図 2.62 | プロジェクト・ツリー パネル(依存関係ファイル表示後) |
なお,依存関係ファイルの表示は,以下のタイミングで更新します。
- | プロジェクトを読み込んだのち,初めてビルドを実行したとき |
- | ツールバーの
をクリックしたとき |
- | [ビルド]メニュー→[依存関係の更新]を選択したとき |
- | [ビルド]メニュー→[アクティブ・プロジェクトの依存関係の更新]を選択したとき |
備考 2. | プロジェクト・ツリーに表示している依存関係ファイルの情報は,プロジェクト・ファイルには保存しません。 |
以下の注意は,オプション ダイアログの[全般 - ビルド]カテゴリで[利用可能な場合、依存関係の更新にコンパイラを使用し、解析速度より解析精度を上げる]をチェック,およびプロジェクトで選択したコンパイラがCC-RH V1.00.00以上,CC-RX V2.00.00以上,CC-RL V1.00.00以上のいずれかの場合は該当しません。
注意 1. | CS+は,インクルード・ファイルの依存関係のチェックにおいて,#ifなどの条件文やコメントをサポートしません。
そのため,ビルドに不要なインクルード・ファイルを,必要なファイルであると認識するケースがあります(以下の例において,header1.h,header5.hは,ビルドに必要であると判断します)。 |
#if 0
#include "header1.h" /* 依存関係ありと判断する */
#else /* ! zero */
#include "header2.h" /* 依存関係あり */
#endif
#define AAA
#ifdef AAA
#include "header3.h" /* 依存関係あり */
#else
#include "header4.h" /* 依存関係あり */
#endif
/*
#include "header5.h" /* 依存関係ありと判断する */
*/
|
注意 2. | CS+は,インクルード・ファイルの依存関係のチェックにおいて,コメント文のあとに記述したインクルード文をサポートしません。
そのため,ビルドに必要なインクルード・ファイルを,不要なファイルであると認識するケースがあります(以下の例において,header6.h,header7.hは,ビルドに不要であると判断します)。 |
/* comment */ #include "header6.h" /* 依存関係なしと判断する */
/*
comment
*/ #include "header7.h" /* 依存関係なしと判断する */
|