0

在名为 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 正常执行。

为什么?应该如何使用预处理器?

4

0 回答 0