gpt4 book ai didi

c++ - doxygen 正在生成空文档

转载 作者:搜寻专家 更新时间:2023-10-31 00:28:59 27 4
gpt4 key购买 nike

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

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

生成了一个主页,它只是不显示任何内容 - 即使我专门设置了 EXTRACT_ALL = YES(在使用 EXTRACT_ALL = NO 得到空结果之后。

为什么没有生成任何内容,我该如何解决?

注意事项:

  • 所有头文件都有@file注释。
  • 我已将与 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...

最佳答案

TL;DR:删除 FILE_PATTERNS 变量中的逗号并使其以空格分隔。

代替:

FILE_PATTERNS          = *.c, *.cc, *.cxx, *.etc

你应该使用:

FILE_PATTERNS          = *.c *.cc *.cxx *.etc

说明

@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 会看到一个模式列表,其扩展名具有尾随 , 字符。而且 - 它没有提示。它也不会提示基本上忽略了存储库中的所有文件 - 它只是以空结果结束。

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

注意:从 Doxygen 版本 1.8.15 开始,这应该不再是一个问题,并且应该接受逗号作为字段的分隔符。

关于c++ - doxygen 正在生成空文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43093051/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com