2017-03-29 83 views
1

我有一个source repository在C++(和一些CUDA),我想doxygenate。我已经为一些 - 但不是全部 - 的代码添加了doxygen注释;生成一个Doxygen配置文件,并运行doxygen以查看一些部分输出。doxygen正在生成空文档

我得到的是:什么都没有。空。

生成一个主页,它只是不显示任何东西 - 即使我专门设置EXTRACT_ALL = YES(渐渐空虚的结果与EXTRACT_ALL = NO

为什么产生什么,我该如何解决

注:

  • 所有的头文件都@file意见
  • 我已经ADDE d CUDA相关扩展到允许的模式
  • 我有这个问题的早期版本,没有答案后情况发生了一些变化(所以我删除了那一个)。
  • 即使从doxygen.cfg中删除大部分行(请参见下文),问题仍然存在。


doxygen.cfg(较短的版本,与评论滤除):

DOXYFILE_ENCODING  = UTF-8 
PROJECT_NAME   = "cuda-api-wrappers" 
PROJECT_BRIEF   = "Thin C++-flavored wrappers for the CUDA Runtime API" 
OUTPUT_DIRECTORY  = docs 
ALLOW_UNICODE_NAMES = YES 
OUTPUT_LANGUAGE  = English 
BRIEF_MEMBER_DESC  = YES 
REPEAT_BRIEF   = YES 
FULL_PATH_NAMES  = YES 
JAVADOC_AUTOBRIEF  = YES 
QT_AUTOBRIEF   = NO 
MULTILINE_CPP_IS_BRIEF = NO 
INHERIT_DOCS   = YES 
SEPARATE_MEMBER_PAGES = NO 
TAB_SIZE    = 4 
EXTENSION_MAPPING  = cu=C++ cuh=C++ cuhpp=C++ hpp=C++ 
MARKDOWN_SUPPORT  = YES 
AUTOLINK_SUPPORT  = YES 
BUILTIN_STL_SUPPORT = YES 
SUBGROUPING   = YES 
LOOKUP_CACHE_SIZE  = 2 
EXTRACT_ALL   = YES 
EXTRACT_LOCAL_CLASSES = YES 
HIDE_UNDOC_MEMBERS  = NO 
HIDE_UNDOC_CLASSES  = NO 
HIDE_FRIEND_COMPOUNDS = NO 
CASE_SENSE_NAMES  = YES 
HIDE_SCOPE_NAMES  = NO 
HIDE_COMPOUND_REFERENCE= NO 
SHOW_INCLUDE_FILES  = YES 
SHOW_GROUPED_MEMB_INC = NO 
FORCE_LOCAL_INCLUDES = NO 
INLINE_INFO   = YES 
SORT_MEMBER_DOCS  = YES 
STRICT_PROTO_MATCHING = NO 
MAX_INITIALIZER_LINES = 30 
SHOW_USED_FILES  = YES 
SHOW_FILES    = YES 
SHOW_NAMESPACES  = YES 
QUIET     = NO 
WARNINGS    = YES 
WARN_IF_UNDOCUMENTED = YES 
WARN_IF_DOC_ERROR  = YES 
WARN_NO_PARAMDOC  = NO 
WARN_AS_ERROR   = NO 
WARN_FORMAT   = "$file:$line: $text" 
INPUT     = src 
INPUT_ENCODING   = UTF-8 
FILE_PATTERNS   = *.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, *.qsf, *.as *.js, *.cuh, *.cu, *.cuhpp 
RECURSIVE    = YES 

Doxygen的控制台输出:

Adding custom extension mapping: .cu will be treated as language c++ 
Adding custom extension mapping: .cuh will be treated as language c++ 
Adding custom extension mapping: .cuhpp will be treated as language c++ 
Adding custom extension mapping: .hpp will be treated as language c++ 
Searching for include files... 
Searching for example files... 
Searching for images... 
Searching for dot files... 
Searching for msc files... 
Searching for dia files... 
Searching for files to exclude 
Searching INPUT for files to process... 
Searching for files in directory /home/eyalroz/src/mine/cuda-api-wrappers/src 
Searching for files in directory /home/eyalroz/src/mine/cuda-api-wrappers/src/cuda 
Searching for files in directory /home/eyalroz/src/mine/cuda-api-wrappers/src/cuda/api 
Reading and parsing tag files 
Parsing files 
Building group list... 
Building directory list... 
Building namespace list... 
Building file list... 
Building class list... 
Associating documentation with classes... 
Computing nesting relations for classes... 
Building example list... 
Searching for enumerations... 
Searching for documented typedefs... 
Searching for members imported via using declarations... 
Searching for included using directives... 
Searching for documented variables... 
Building interface member list... 
Building member list... 
Searching for friends... 
Searching for documented defines... 
Computing class inheritance relations... 
Computing class usage relations... 
Flushing cached template relations that have become invalid... 
Creating members for template instances... 
Computing class relations... 
Add enum values to enums... 
Searching for member function documentation... 
Building page list... 
Search for main page... 
Computing page relations... 
Determining the scope of groups... 
Sorting lists... 
Freeing entry tree 
Determining which enums are documented 
Computing member relations... 
Building full member lists recursively... 
Adding members to member groups. 
Computing member references... 
Inheriting documentation... 
Generating disk names... 
Adding source references... 
Adding xrefitems... 
Sorting member lists... 
Computing dependencies between directories... 
Generating citations page... 
Counting data structures... 
Resolving user defined references... 
Finding anchors and sections in the documentation... 
Transferring function references... 
Combining using relations... 
Adding members to index pages... 
Generating style sheet... 
Generating search indices... 
Generating example documentation... 
Generating file sources... 
Generating file documentation... 
Generating page documentation... 
Generating group documentation... 
Generating class documentation... 
Generating namespace index... 
Generating graph info page... 
Generating directory documentation... 
Generating index page... 
Generating page index... 
Generating module index... 
Generating namespace index... 
Generating namespace member index... 
Generating annotated compound index... 
Generating alphabetical compound index... 
Generating hierarchical class index... 
Generating graphical class hierarchy... 
Generating member index... 
Generating file index... 
Generating file member index... 
Generating example index... 
finalizing index lists... 
writing tag file... 
Running dot... 
lookup cache used 127/262144 hits=628 misses=194 
finished... 
+0

doxygen本身呢,它是否会在终端中产生任何输出? –

+0

@KamilKoczurek:添加了控制台输出。 – einpoklum

+0

我克隆到我的电脑回购,它是非常大的文件读槽,但它似乎在生成示例配置后正常工作,你有没有考虑使用准备一个,然后修改它? 顺便说一句,你应该注释掉第一行,doxygen不知道如何处理它,但它不会解决你的问题。 –

回答

3

TL; DR:丢弃逗号在FILE_PATTERNS变量和m中以空格分隔。

所以,@albert破解它!这里的拼图缺少的部分:doxygen的生成的配置文件中说:

# If the value of the INPUT tag contains directories, you can use the 
# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and 
# *.h) to filter out the source-files in the directories. 
# 
# Note that for custom extensions or not directly supported extensions you also 
# need to set EXTENSION_MAPPING for the extension otherwise the files are not 
# read by doxygen. 
# 
# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, 
# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, 
# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, 
# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f, *.for, *.tcl, 
# *.vhd, *.vhdl, *.ucf, *.qsf, *.as and *.js. 

FILE_PATTERNS   = 

此评论是一种误导,因为它给你一个逗号分隔的列表,而实际上逗号不作为分隔符处理。如果您使用该列表(可能会添加/更改它),就像在OP的示例中一样,Doxygen会看到一个扩展名尾随,字符的模式列表。而且 - 它没有抱怨。它也不会抱怨忽略存储库中基本上所有的文件 - 它只是以空的结果结束。

删除,字符会导致生成非空文档。