【问题标题】:Doxygen: parameters of member my_function are not (all) documentedDoxygen:成员 my_function 的参数没有(全部)记录在案
【发布时间】:2023-12-02 03:31:01
【问题描述】:

我有这个C 文件:

/**
 * Blah blah blah.
 *
 * @file   myfile.c
 * @author Carlos Alexandro Becker (author@mail.com)
 *
 * @brief  Some Brief.
 */
#include <jni.h>
#include <stdio.h>
#include "myfile.h"

/**
 * Blah blah blah.
 * @param obj The obj
 * @return True
 */
static bool
something_has_blah (jobject * obj)
{
  return true;
}

void
my_fn (JNIEnv * env, jobject * obj, int number)
{
   // code
}

还有.h 文件:

/**
 * Blah blah blah.
 *
 * @file   myfile.h
 * @author Carlos Alexandro Becker (author@mail.com)
 *
 * @brief  Some Brief.
 */
#ifndef FUNCTIONS_H_BIND_INCLUDED
#define FUNCTIONS_H_BIND_INCLUDED

/**
 * Blah blah blah
 * @param env Java Environment
 * @param obj Obj
 * @param number Number
 */
void my_fn (JNIEnv * env, jobject * obj, int number);

#endif

出于某种原因,Doxygen 抱怨这个功能:

error: parameters of member my_fn are not (all) documented (warning treated as error, aborting now)

Doxyfile 看起来像:

WARN_AS_ERROR         = YES
WARN_IF_UNDOCUMENTED  = YES
WARN_IF_DOC_ERROR     = YES
WARN_NO_PARAMDOC      = YES
JAVADOC_AUTOBRIEF     = YES
OPTIMIZE_OUTPUT_FOR_C = YES
GENERATE_HTML         = NO
GENERATE_LATEX        = NO

我在该方法的文档中遗漏了什么让 Doxygen 开心? 我尝试添加@return void 和其他内容,但没有任何结果。

顺便说一下,这里是完整的可重现代码:https://github.com/caarlos0/happy-doxygen

【问题讨论】:

  • 嗯。我想知道为什么它说“成员”。
  • @melpomene 是的,我是 doxygen 的新手,所以我也不知道......
  • @melpomene 我还添加了.h 文件,我猜member 就是因为这个。
  • 你不应该在头文件和实现文件中都做这个文档。尝试从您的 .c 文件中删除它。
  • @Saraph 我在 C 文件中添加了它,试图解决这个问题,但无论哪种方式都不起作用..

标签: c doxygen


【解决方案1】:

正如@altert 在 cmets 中所说,问题在于缺少输出格式。

换行

GENERATE_HTML         = NO
GENERATE_LATEX        = NO

GENERATE_HTML         = YES
GENERATE_LATEX        = YES

由于某种原因解决了这个问题。

【讨论】: