Doxygen EXTRACT_ALL = NO不起作用

时间:2014-04-16 14:25:47

标签: doxygen

我在C项目中使用doxygen时遇到以下问题。我有许多未记录的内部结构。因此它在我的Doxyfile中设置EXTRACT_ALL=NO。不幸的是,doxygen仍然会提取其中一些。这是一个最小的工作示例。假设以下头文件:

#ifndef HASHTABLE_H
# define HASHTABLE_H
#ifdef __cplusplus
extern "C" {
#endif
typedef void* object;
typedef char *(*object_getname)( object obj);
typedef void (*object_free)( object obj);
typedef mess_int_t (*object_hash)( char *name,  mess_int_t size);
typedef struct  {
 hashtable_entry *next;
 object *obj;
} hashtable_entry;
typedef struct {
 object_getname name;
 object_free freigabe;
 object_hash hash;
 mess_int_t size;
 hashtable_entry **hashtable;
} hashtable_t;
typedef hashtable_t * hashtable;

#ifdef __cplusplus
}
#endif
#endif

并在Doxyfile中设置以下选项:

EXTRACT_ALL            = NO
EXTRACT_PRIVATE        = NO 
EXTRACT_PACKAGE        = NO
EXTRACT_STATIC         = NO
EXTRACT_LOCAL_CLASSES  = NO 
EXTRACT_LOCAL_METHODS  = NO
EXTRACT_ANON_NSPACES   = NO

但是在生成数据结构列表中列出了两种结构。在其他文件中以相同方式定义的一些其他未记录的结构未列出,因为我期望它来自EXTRACT_ALL=NO的描述。为什么doxygen提取一些而其他不提取?

整个doxyfile位于:http://pastebin.com/J7c9BbvW

我正在使用doxygen 1.8.5

2 个答案:

答案 0 :(得分:3)

问题的答案就像我们在上面的评论中已经讨论过的那样,以下设置有效:

EXPORT_ALL=NO 
Doxyfile中的

阻止doxygen仅从头文件中提取数据结构而不是所有源文件。

设置

HIDE_UNDOC_MEMBERS = YES
HIDE_UNDOC_CLASSES = YES

禁用头文件中未记录的结构列表。

答案 1 :(得分:0)

ENABLE_PREPROCESSING   = NO

不幸的是,doxygen不解析多个包括头文件保护:

#ifndef HASHTABLE_H
# define HASHTABLE_H