插入 link 以使用 Doxygen 在另一个文件中运行?

Insert link to function in another file with Doxygen?

我有两个C源文件。对文件 A 中函数 bar() 的注释需要引用文件 B 中的函数 foo()。我该怎么做 link?

我试过了:

  1. 写这样的东西:B.c::foo() 希望 doxygen 会去文件 B 并在那里找到函数 foo

  2. 也简单地尝试了 ::foo() 但没有帮助。

  3. 然后我尝试给文件 B.c 一个特殊的标记名,就像在 B.c 的第一行做 //! @file specialtag 然后在我的 specialtag::foo()评论,但变化不大。

  4. 我试图用 \ref\link 强制 link 但即使这样也无济于事。

//! @file 行出现在 A.cB.c 中,所以 doxygen 应该知道代码。

编辑

我尝试了@doxygen 的建议,但没有成功。我做了一个示例项目来展示我 运行 遇到的问题,它在这里:http://www.filedropper.com/testdoxygen2tar

我使用了 doxygen -g 制作的默认安装文件。 我得到的输出:

您可以看到 foobar 函数没有被 linked 到。

编辑 2

找到问题了。函数 foo 没有记录,因此没有生成它的页面,所以当然 doxygen 没有页面可以 link 到。 (我在启用 SOURCE_BROWSER 选项的情况下生成文档,并希望生成 link 函数定义)

这很简单。这是一个使用默认配置文件 (doxygen -g) 的最小示例:

首先创建包含以下内容的文件foo.c:

/** @file */

/** Function foo, see also bar(). */
void foo()
{
}

然后创建包含以下内容的文件 bar.c:

/** @file */

/** Function bar, see also foo(). */
void bar()
{
}

运行 doxygen 并在 HTML 输出中观察到这两个函数将对另一个函数具有 link。