【问题标题】:Doxygen does not generate any documentationDoxygen 不生成任何文档
【发布时间】:2018-12-09 09:14:49
【问题描述】:

这是我的 lexer.hpp 文件:

/**
 * \文件
 * \简要词法分析
 * \作者伊戈尔·扎什切尔金
 *
 * MyLisp 的词法分析 API。
 */

#ifndef LEXER_H
#define LEXER_H

#include 
#include 

/**
 * \brief 用于将令牌(Token)与其类型联系起来。
 * \日期 2018 年 6 月 29 日
 *
 * 代币编号 - 12、5.4、-200
 * TokenString - “你好,世界”
 * TokenBoolean - 真,假
 * TokenIdentifier - 函数名、变量名
 * TokenSeparator - ( ) ,
 */

枚举令牌类型 {
     TokenNumber /// \brief 存储数字数据的令牌
    ,TokenString /// \brief 存储符号数据的令牌,结束和开始于 "
    ,TokenBoolean /// \brief 只存储一种状态 1 或 0 的令牌
    ,TokenIdentifier /// \brief 链接到某物的标记(变量,函数)
    ,TokenSeparator /// \brief 分割代码逻辑部分的标记
};

/**
 * \brief Token 的值类型
 * \日期 2018 年 6 月 29 日
 *
 * 简单地说,包装 std::string
 */

typedef std::string TokenValue;

/**
 * \brief 词法分析的最小部分
 * \日期 2018 年 6 月 29 日
 *
 * 结构化的 TokenType 和 TokenValue 对(又名 std::string)
 */

类令牌{
私人的:
    const TokenType 类型; /// \brief 令牌的类型
    const TokenValue 值; /// \brief Token的价值
民众:
    Token(TokenType 类型,std::string 值); /// \简要构造函数

    const TokenType getType(); /// /类型属性的简要Getter
    常量 TokenValue getValue(); /// \值属性的简要Getter
};

/**
 * \brief 词法分析 API 实例
 * \日期 2018 年 6 月 29 日
 */

类词法分析器{
私人的:
    std::string 代码; /// \简要源代码
民众:
    词法分析器(标准::字符串代码); /// \简要构造函数

    /**
     * \brief 标记源代码
     * \日期 2018 年 6 月 29 日
     *
     * 从代码属性 (std::string) 生成标记序列 (std::vector)
     */

    标准::向量标记化();
};

#endif //LEXER_H

一切都很好(这是我的想法),但是当我运行时

doxygen src/lexer/lexer.hpp
Doxygen 生成空文档。 怎么了?

【问题讨论】:

  • doxygen 的哪个版本?
  • doxygen -v 1.8.13
  • 因为这个问题与当前(1.8.14)版本没有区别。
  • 不相关,但您可能想在tokenize 函数中更改std::vector 中的std::vector<std::string>

标签: c++ doxygen documentation-generation


【解决方案1】:

你应该有一个 doxygen 配置文件(Doxyfile),可以使用doxygen -g 生成一个默认版本。在 Doxyfile 中,您可以设置所需的选项。然后,您可以仅使用 doxygendoxygen Doxyfile 启动 doxygen。

即使使用 OP 使用的设置,我也得到了文档(以及许多警告消息,例如:“警告:忽略第 2 行的未知标签 `file',文件 lexer.hpp”,表明某些内容不正确)。

另请参阅 doxygen 文档。

【讨论】: