2017-09-06 5 views
0

문서가 doxygen으로 생성 된 거대한 코드가 있습니다. 내 doxygen이 구성 파일에서doxygen이 내 파일을 찾지 못하는 이유

나는

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

이 있고 EXCLUDE 태그는 일부 디렉토리를 제외하지만,이 질문에 대한 문제가되지 않은. 내가 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이 포함됩니다. 그런데 내가 왜이 경고를 여기에 가지고 있나?

둘째 포인트는 내 문서 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" 
,536,913,632 있습니다에 대한 10

편집 : Doxygen 버전은 1.8.11입니다.

표준 헤더는 네임 스페이스 내부에서 포함되었을 때 나는 (doxygen이 1.8.14로)이 문제를 했어
+0

어떤 doxygen 버전입니까? 처음에는 파싱 파일 .... path/to/src/Fibers/Parameters/ConfigurationParams.def.h에 대해 알 수 있습니까? 이 문제는 이중 확장자 (.def.h)가있는 파일에만 발생합니까? FILE_PATTERNS에 포함시키지 않겠습니까? – albert

+0

@albert 그것은 math.h와 iostream에 대해서도 일어나는 것처럼 두 개의 확장 파일에서 일어날뿐만 아니라, 내 파일의 경우 실제로는 두 개의 확장자가있는 두 파일에서만 발생합니다. 모든 헤더는 (* .h)이지만 * .def.h는 아니므로 파일 패턴에 포함됩니다. 그 두 파일에 대한 문서 페이지가 생성됩니다, 나는 해당 html 페이지가 있습니다. – Tsathoggua

+0

INCLUDE_PATH 설정을 사용하면 iostream에 대한 설명을 없앨 수있을 것입니다. 나는 * .def.h 파일에 대해서도 마찬가지라고 생각한다. 현재 버전 (1.8.13)에서 어떤 일이 발생하는지 확인하십시오. – albert

답변

0

:

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

이 간접적으로 발생할 수 :

// header file 
#include <iostream> 
// implementation file 
namespace ns { 
#include "header.h" 
// more stuff 
} 
관련 문제