在名为 lib_angles.f90 的 fortran 源文件中,我有以下函数声明,
#ifdef NDEBUG
pure function la_get_quadrant(A)
#else
function la_get_quadrant(A)
#endif
我在配置文件中使用以下设置,
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = NO
PREDEFINED = NDEBUG
运行最新版本的 doxygen (1.8.5) 会产生以下输出,
(...)
Reading /home/pmginacio/bin/doc/test/lib_angles.f90...
Parsing file /home/pmginacio/bin/doc/test/lib_angles.f90...
********************************************************************
Error in file /home/pmginacio/bin/doc/test/lib_angles.f90 line: 38, state: 4
********************************************************************
Segmentation fault (core dumped)
问题似乎在于没有选择函数声明之一的预处理器。当我在代码中评论其中一个时,
#ifdef NDEBUG
pure function la_get_quadrant(A)
#else
!function la_get_quadrant(A)
#endif
doxygen 正常执行。
为什么?应该如何使用预处理器?