插入 link 以使用 Doxygen 在另一个文件中运行?
Insert link to function in another file with Doxygen?
我有两个C源文件。对文件 A
中函数 bar()
的注释需要引用文件 B
中的函数 foo()
。我该怎么做 link?
我试过了:
写这样的东西:B.c::foo()
希望 doxygen 会去文件 B
并在那里找到函数 foo
。
也简单地尝试了 ::foo()
但没有帮助。
然后我尝试给文件 B.c
一个特殊的标记名,就像在 B.c
的第一行做 //! @file specialtag
然后在我的 specialtag::foo()
评论,但变化不大。
我试图用 \ref
和 \link
强制 link 但即使这样也无济于事。
//! @file
行出现在 A.c
和 B.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。
我有两个C源文件。对文件 A
中函数 bar()
的注释需要引用文件 B
中的函数 foo()
。我该怎么做 link?
我试过了:
写这样的东西:
B.c::foo()
希望 doxygen 会去文件B
并在那里找到函数foo
。也简单地尝试了
::foo()
但没有帮助。然后我尝试给文件
B.c
一个特殊的标记名,就像在B.c
的第一行做//! @file specialtag
然后在我的specialtag::foo()
评论,但变化不大。我试图用
\ref
和\link
强制 link 但即使这样也无济于事。
//! @file
行出现在 A.c
和 B.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。