コンテンツ
質問
『解析エラーが発生した場合』には、「最初に検出されたエラーから順に解消する必要がある」とありますが、下図のように複数のファイルでエラーが表示されています。
最初に検出されたエラーがどれか判断する方法はありますか。
回答
『解析対象』として登録されているファイルのうち、一つを選択して解析します。
その上で、複数のファイルでエラーが検出されている場合は、解析したファイルからインクルードされる順序を考慮して最初に検出されたエラーを判断します。
インクルードされる順序が簡単に判断できない場合は、『プリプロセス済みファイルを生成』し、一時的にそのプリプロセス済みファイルを解析対象に登録して解析し、最初に検出されたエラーを確認します。
より正確にプリプロセス済みファイルを用いて最初のエラー箇所を判断するには、次のようにする必要があります。
特にQAC++をお使いの場合は、この方法が有効です。
手順
1.生成されたプリプロセス済みファイルを、ソースファイル部とヘッダファイル部に分割します。
プリプロセス済みファイルには、オリジナルのファイルパスが出力されています。
オリジナルの解析対象のファイルをソースファイル、それ以外をヘッダファイルとします。
通常、プリプロセス済みファイルの初めにはヘッダファイルが展開され、ソースファイルはプリプロセス済みファイルの最後に展開されています
以下では分割したソースファイルをtest.cpp、ヘッダファイルをtest.hと記します。
2.test.cppの先頭行に #include "test.h" を挿入します。
3.新しいディレクトリを作成し、その中にtest.hを配置します。
4.解析設定ファイル(ACF)の"-i"および"-q"オプションで手順3で作成したディレクトリを指定します。
(『インクルードファイルの検索パスの設定』を参照)
5.一時的にtest.cppを解析対象に登録して解析し、最初に検出されたエラーを確認します。