よくある質問(FAQ)

インクルード「#include_next」が無限ループに陥って解析エラーになります。

解析エラーの回避策について

質問

「#include_next」ディレクティブを使用してインクルードしているソースファイルをCasePlayer2で解析すると、インクルードの無限ループに陥って解析エラーになります。回避策を教えてください。

■記述例
#include_next <limits.h>

回答

「#include_next」ディレクティブは、GNU-Cで規定されている言語仕様ですが、CasePlayer2は未対応です。「言語設定」を GNU-C に設定してもエラーは回避されません。CasePlayer2では「#include」と読み替えてインクルードを行いますので、本来入力すべきヘッダファイルとは異なるヘッダファイルを入力してしまいます。

■回避策
相対 (又は絶対)パス表記で、インクルードするヘッダファイルを明示的に指定してください。

#ifndef CP2
 #include_next <limits.h>
#else
 #include <(パス名)/limits.h>
#endif

※ CasePlayer2で解析するときは「#include <(パス名)/limits.h>」が有効となるようにします。
※"CP2"の定義は、CasePlayer2の「プリプセッサの設定」ダイアログの「#define(デファイン名[=数値])」へ設定してください。