2.6.6 ファイルの依存関係を更新する

コンパイル・オプションの設定,アセンブル・オプションの設定で,ファイルの依存関係に影響する変更(インクルード・ファイルのパスの変更,Cソース・ファイル,およびアセンブリ・ソース・ファイル中にヘッダ・ファイルのインクルード文を追加など)を行った場合は,該当ファイルの依存関係を更新する必要があります。

ファイルの依存関係の更新は,プロジェクト全体(メイン・プロジェクト,およびサブプロジェクト),またはアクティブ・プロジェクトに対して行います。

(1)

プロジェクト全体の場合

[ビルド]メニュー→[依存関係の更新]を選択してください。

図 2.58

[依存関係の更新]項目

 

(2)

アクティブ・プロジェクトの場合

[ビルド]メニュー→[アクティブ・プロジェクトの依存関係の更新]を選択してください。

図 2.59

アクティブ・プロジェクトの依存関係の更新]項目

 

備考

ファイルの依存関係を更新する際,エディタ パネルで編集中のファイルがある場合は,該当ファイルを一括して保存します。

 

依存関係ファイル(インクルード・ファイル)は,プロジェクト・ツリー上のソース・ファイルにぶら下げて表示することができます。

図 2.60

プロジェクト・ツリー パネル(依存関係ファイル表示後)

 

なお,依存関係ファイルの表示は,以下のタイミングで更新します。

-

プロジェクトを読み込んだのち,初めてビルドを実行したとき

-

ツールバーの をクリックしたとき

-

[ビルド]メニュー→[依存関係の更新]を選択したとき

-

[ビルド]メニュー→[アクティブ・プロジェクトの依存関係の更新]を選択したとき

備考 1.

依存関係ファイルの表示は,オプション ダイアログ[全般 - ビルド]カテゴリの[プロジェクト・ツリーに依存関係ファイルを表示する]がチェック状態の場合のみ有効となります。

備考 2.

プロジェクト・ツリーに表示している依存関係ファイルの情報は,プロジェクト・ファイルには保存しません。

注意 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"                 /* 依存関係なしと判断する */