2017-09-06 3 views
0

文書がdoxygenで生成された巨大なコードがあります。私はdoxygenが私のファイルを見つけないのはなぜですか?

INPUT     = ../../src/Fibers \ 
         ../../src/SolveursContact/solverAC2 
##      plus some other path 
RECURSIVE    = YES 

EXCLUDEタグを持っている私のdoxygenの設定ファイルで

は、いくつかのディレクトリを除外ではなく、それらのこの質問のために重要でいます。

その後、私はdoxygenを実行するとき、私は次の警告(ない完全なリスト)

path/to/src/Fibers/Rendering/Hair/Rendering/Scattering/model.h:4: warning: include file math.h not found, perhaps you forgot to add its directory to INCLUDE_PATH? 
path/to/src/Fibers/Rendering/Hair/Rendering/Scattering/model.h:5: warning: include file iostream not found, perhaps you forgot to add its directory to INCLUDE_PATH? 
path/to/src/Fibers/Simulation/Configuration.hpp:205: warning: include file ConfigurationParams.def.h not found, perhaps you forgot to add its directory to INCLUDE_PATH? 
path/to/src/Fibers/Simulation/SolverManager.cpp:315: warning: include file AC2MecheSolvers.def.h not found, perhaps you forgot to add its directory to INCLUDE_PATH? 

を(私のパスが非常に長いですが、彼らがすべて正しい。)を取得

最初のポイントは、私はありますdoxygenにはmath.hまたはiostreamのドキュメントが含まれていて、他のファイルにはiostreamが含まれていることは明らかではありません。では、なぜこの警告が出るのですか?

2番目の点は、私のファイルConfigurationParams.def.hAC2MecheSolvers.def.hは実際にはそれぞれのhtmlドキュメントページをチェックしているので、doxygenによってある時点で見つかっています。では、なぜ彼らはここにリンクされていないのですか?

私の問題のファイルです

path/to/src/SolveursContact/solverAC2/src/AC2MecheSolvers.def.h 
path/to/src/Fibers/Parameters/ConfigurationParams.def.h 

model.h

1 #ifndef MODEL_MECHE_H 
2 #define MODEL_MECHE_H 
3 
4 #include <math.h> 
5 #include <iostream> 

Configuration.hpp

200 #define EXPAND_CONF_PRMWO(n, t, d) \ 
201  t n ; 
202 #define EXPAND_CONF_PARAM(n, t, I, d) \ 
203  t n ;\ 
204  t n##SI ; 
205 #include "ConfigurationParams.def.h" 

のパスSolverManager.cpp

310 #ifdef SOLVER_AC2 
311 #define EXPAND_MECHE_SOLVER(n, g, l) \ 
312  case Configuration::SOLVER_FUNC_##g##_##l : \ 
313       res = ac2Solver->solve(g, (LocalSolver) l) ; \ 
314  break ; 
315 #include "AC2MecheSolvers.def.h" 

編集: Doxygenのバージョンは1.8.11です。

+0

doxygenのどのバージョンですか?最初にファイルを解析していますか?path/to/src/Fibers/Parameters/ConfigurationParams.def.h?これは二重拡張子(.def.h)のファイルにのみ起こりますか?あなたはFILE_PATTERNSに除外しましたか? – albert

+0

@albertこれは、math.hとiostreamでも発生するので、二重拡張ファイルで起こるだけではありません。私のファイルでは、実際には2倍の拡張子を持つ唯一の2つのファイルに対してのみ発生します。 これらのファイルはすべてのヘッダーが(* .h)ですが、* .def.hではなく、ファイルパターンに含まれています。 その2つのファイルのドキュメントページが生成され、対応するhtmlページがあります。 – Tsathoggua

+0

INCLUDE_PATH設定を使用して、iostreamに関するmath.hのコメントを取り除くことができると思います。 * .def.hファイルについても同じことが当てはまると思います。現在のバージョン(1.8.13)で何が起こるかも見てください。 – albert

答えて

0

標準ヘッダは、名前空間内から含まれていたとき、私は(doxygenは1.8.14で)この問題を持っていた:

namespace ns { 
#include <iostream> 
// more stuff 
} 

これはまた、間接的に発生します

// header file 
#include <iostream> 
// implementation file 
namespace ns { 
#include "header.h" 
// more stuff 
} 
関連する問題