我有一个庞大的代码,使用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.h
和AC2MecheSolvers.def.h
实际上是通过doxygen找到的,因为我已经检查了每个文件的html文档页面。那么为什么他们没有联系到这里呢?
我的问题文件的路径是
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 :(得分:0)
当从命名空间中包含标准标头时,我遇到了这个问题(使用doxygen 1.8.14):
namespace ns {
#include <iostream>
// more stuff
}
这也可以间接发生:
// header file
#include <iostream>
// implementation file
namespace ns {
#include "header.h"
// more stuff
}