我在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
答案 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