【问题标题】:Issue getting Doxygen to document an enum in C问题让 Doxygen 记录 C 中的枚举
【发布时间】:2010-12-15 15:11:47
【问题描述】:

我对 Doxygen(Mac OS X Snow Leopard 上的 1.6.1)有一个相当奇怪的问题,因为无论我做什么,它似乎都不会记录我的枚举。我正在用 C 语言编程,并按照手册中的说明进行操作。这是我的代码:

/**
 * \enum dccp_pkt_type 
 * \brief specifies the available DCCP packet types
 */

enum dccp_pkt_type
{
    DCCP_REQUEST    = 0,    /**< DCCP Request Packet */
    DCCP_RESPONSE,          /**< DCCP Response Packet */
    DCCP_DATA,              /**< DCCP Data Packet */
    DCCP_ACK,               /**< DCCP Ack Packet */
    DCCP_DATAACK,           /**< DCCP Data Ack Packet */
    DCCP_CLOSEREQ,          /**< DCCP Close Request Packet */
    DCCP_CLOSE,             /**< DCCP Close Packet */
    DCCP_RESET,             /**< DCCP Reset Packet */
    DCCP_SYNC,              /**< DCCP Sync Packet */
    DCCP_SYNCACK,           /**< DCCP Sync Ack Packet */
    DCCP_RESERVED,          /**< DCCP Reserved Packet Type - Receivers MUST
                         ignore any packets with this type */
};

它应该根据 doxygen 手册产生正确记录的输出,但它什么也没产生。我很可能错过了一些简单的东西,如果有人能指出我正确的方向,我将不胜感激。

【问题讨论】:

  • 一般性评论未解决该问题:您的 [Doxygen] cmets 用于单个枚举值(可能除了 DCCP_RESERVED 的“忽略”注释)没有添加任何有用的内容,只是使视图混乱。

标签: documentation enums doxygen


【解决方案1】:

来自Doxygen manual

让我们重复一遍,因为它经常 忽略:记录全局对象 (函数,typedef,枚举,宏, 等),您必须将文件记录在 它们是定义的。其他 话,至少必须有一个

/*! \file */ 或一个

/** @file */ 此文件中的行。

【讨论】:

    【解决方案2】:

    我的经验与使用带有 doxygen 1.8.9.1 的 EXTRACT_ALL=NOSHOW_INCLUDE_FILES=NO 相同 - 即使存在 /*! \file */ 并且全局 enum 被记录的复合结构引用,也没有列出或链接全局枚举类型.

    为了解决这个问题,我最终定义了一个枚举组:

    /*! \defgroup Enumerations Public enumeration types */

    对于枚举类型,我使用\ingroup Enumerations 将枚举包含在新组中。然后,Doxygen 能够从复合结构自动链接到枚举类型。

    【讨论】:

    • 我在 1.8.11 版本中也发现了这个。
    【解决方案3】:

    如果内存正常,枚举文档不会显示,除非该文件也被记录。尝试添加 @file 部分。

    【讨论】:

      猜你喜欢
      • 2010-10-07
      • 2012-11-24
      • 2014-09-03
      • 2012-08-15
      • 2014-03-02
      • 2014-10-07
      • 2014-04-10
      • 2013-04-20
      • 1970-01-01
      相关资源
      最近更新 更多