我对强氧有问题。并非所有“我的任务”都收集在“全局任务”列表中,而是其中的大部分。我制作了一个简单的C示例,其中有一个源文件和头文件,以及一个配置文件,在这里我将todo放在任何地方,我希望doxygen将它们收集到全局todo列表中。
我的全局todo列表缺少下面代码片段中显示的todo,这意味着我的公共函数体(myFunc中的test_todo12)中的todo,以及cfg文件(test_todo16和test_todo17)中的todo,这两个文件都按如下所示实现。
试验h:

/**
 * Definition of test structure.
 */
typedef struct def_struct_
{
    int32_t first;     /**< First element.*/
    int32_t second;    /**< Second element. */
    int32_t third;     /**< third element. */
} def_struct_t;

/**************************************************************************************************/
/**
 * \brief   My func description.
 *
 * \param[ in ] test_param Input parameter to myFunc.
 *
 * \return      bool
 * \retval      false   false on non success.
 * \retval      true    true on success.
 *
**************************************************************************************************/
bool myFunc( uint32_t test_param );

测试c:
#include <stdint.h>
#include <stdbool.h>

#include "test.h"

#include "test.cfg"

bool myFunc( uint32_t test_param )
{
    uint32_t testVar = test_param ;

    //! This function does nothing. \todo test_todo12
    testVar++;

    return true;
}

测试.cfg:
/** test cfg
 * \todo test_todo16
 */
 static def_struct_t test_cfg[2] =
 {
     .first = 123 //! \todo test_todo17
 }

我使用的是1.8.14版的doxygen
与默认设置相比,我的doxygen配置文件中的差异如下(在尝试了许多不同的组合之后):
OPTIMIZE_OUTPUT_FOR_C  = YES
TOC_INCLUDE_HEADINGS   = 1
TYPEDEF_HIDES_STRUCT   = YES
EXTRACT_PRIVATE        = YES
EXTRACT_STATIC         = YES
INTERNAL_DOCS          = YES
HIDE_SCOPE_NAMES       = YES
WARN_NO_PARAMDOC       = YES
RECURSIVE              = YES
EXCLUDE_PATTERNS       = */README.md
EXAMPLE_RECURSIVE      = YES
SOURCE_BROWSER         = YES
GENERATE_TREEVIEW      = YES
USE_MATHJAX            = YES
GENERATE_LATEX         = NO
CLASS_DIAGRAMS         = NO
HAVE_DOT               = YES
UML_LOOK               = YES
DOT_PATH               = "C:\Program Files (x86)\Graphviz2.38\lib\release\lib"
DOTFILE_DIRS           = "C:\Program Files (x86)\Graphviz2.38\lib\release\lib" \ "C:\Program Files (x86)\Graphviz2.38\bin"
PLANTUML_JAR_PATH      = C:\tools\plantUML

and added *.cfg \ to FILE_PATTERNS

链接到完整的可编译代码和doxygen配置(显示此问题的最小示例):Link to code
当我导航到公共函数“myFunc”时,我看到了todo,它只是在全局todo列表中丢失了。
cfg文件似乎根本没有包含在doxygen文档中,虽然它包含在C文件中,但是应该将by视为该文件的一部分?或者是否真的需要做一些额外的/特殊的事情来包含这些cfg文件?如果是,有人知道我错过了什么吗?
我希望有人能帮我解决我的问题,也许公共功能体中的todo甚至是一个bug?
当做
杰斯帕

最佳答案

看来这里有很多问题。
doxygen不知道扩展名cfg,仅将其添加到FILE_PATTERNS是不够的,而且编写扩展名的语言必须让doxygen知道,所以EXTENSION_MAPPING = cfg=C
test.cfg中的变量末尾缺少分号(;)。最后一行应为};
doxygen不认为初始化中的注释记录了某些内容(在当前版本1.8.16中也不考虑这个问题)。问题是它属于哪里,因为\todo很明显它可以登录到ToDo页面,但它是否也应该登录到变量本身?其他注释(初始化现在是变量)如何。另外,在使用STRIP_CODE_COMMENTS=NO时,注释也不会显示在初始化中。

关于c - Doxygen不会在全局待办事项列表中收集所有\todo,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58370973/

10-13 06:55