【问题标题】:How to validate whether a c++ program is well documented using Doxygen format or not?如何验证 C++ 程序是否使用 Doxygen 格式记录良好?
【发布时间】:2021-03-16 17:18:23
【问题描述】:

Doxygen 有没有办法报告源代码是否记录在案?有什么方法可以识别一组 C++ 源文件中没有详细记录的文件集?

  • 编码语言:C++
  • 文档工具:Doxygen(如果有验证选项,可以使用其他一些开放工具进行更改)
/// \brief  Main function
/// \param  argc An integer argument count of the command line arguments
/// \param  argv An argument vector of the command line arguments
/// \return an integer 0 upon exit success
int main(int argc, char** argv)
{
    /// Comments I would like to be documented in as well
    return 0;
}

我使用的命令如下

$> doxygen Doxyfile && echo "success" || echo "failed"

【问题讨论】:

  • 对工具的请求在此无关紧要,应作为姊妹站点软件推荐。在 doxygen 中除了检查 doxygen 给出的警告之外没有这样的设施
  • 我投票结束这个问题,因为我认为它属于软件建议。
  • 不一定是软件推荐,用 doxygen 可以做到。我的答案几乎准备好了,但问题在我发布之前就关闭了。
  • @Striezel 您的回答与我对警告的评论不同吗?
  • @ThomasEaso 我已经限制了这个问题,特别是关于 Doxygen 的问题。这是为了避免人们(比如我自己)认为这是一个软件推荐问题。

标签: c++ doxygen code-documentation


【解决方案1】:

Doxygen 已经提供了一些有用的configuration options:

WARN_IF_UNDOCUMENTED

如果WARN_IF_UNDOCUMENTED 标签设置为YES,那么 doxygen 将为无证成员生成警告。如果将EXTRACT_ALL 设置为YES,则此标志将自动禁用。

WARN_IF_DOC_ERROR

如果WARN_IF_DOC_ERROR 标记设置为YES,doxygen 将对文档中的潜在错误生成警告,例如未记录文档函数中的某些参数,或记录不存在的参数或使用标记命令错了。

WARN_NO_PARAMDOC

可以启用此WARN_NO_PARAMDOC 选项以获取已记录但没有参数或返回值文档的函数的警告。如果设置为NO,doxygen 只会警告错误或不完整的参数文档,但不会警告缺少文档。如果将EXTRACT_ALL 设置为YES,则此标志将自动禁用。

最后:

WARN_AS_ERROR

如果WARN_AS_ERROR 标签设置为YES,那么当遇到警告时 doxygen 将立即停止。如果WARN_AS_ERROR 标签设置为FAIL_ON_WARNINGS,则doxygen 将继续运行,就像WARN_AS_ERROR 标签设置为NO,但在doxygen 进程结束时,doxygen 将以非零状态返回。

可能的值为:NOYESFAIL_ON_WARNINGS

所以让我们把所有这些放在一起。 Doxyfile 需要包含以下设置:

# EXTRACT_ALL = NO is needed, or otherwise some of the 
#               other flags are disabled automatically.
EXTRACT_ALL = NO
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = YES
# WARN_AS_ERROR could also be NO, but then
# it stops after the first documentation error.
WARN_AS_ERROR = YES

这样 doxygen 将显示所有未记录的代码,如果有未记录的代码,它将以非零值退出。

【讨论】:

  • 此解决方案有效。任何提到相同问题的人都可以通过上述步骤解决。谢谢你 Striezel
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-12
  • 1970-01-01
  • 2013-04-27
  • 1970-01-01
  • 2012-06-05
  • 2012-01-14
  • 2016-05-24
相关资源
最近更新 更多