Mat*_*ský 6 c documentation doxygen
我有一个C项目,它包含两个具有相同名称的函数,但每个函数都位于不同的组/模块(@defgroup)中.
这些函数每个都编译成一个不同的二进制文件,但我需要文档密切交叉引用,所以我需要@ref从彼此的模块中引用()这些函数(以及其他地方).
当我做简单时@ref name-of-the-function,它总是链接到文件树中较早的文件.我怎样才能链接到另一个?
据我所知:doxygen 的自动链接不支持具有多个同名功能。
如果有多个具有相同名称的函数/方法,doxygen 将简单地链接它找到的第一个函数/方法,如问题中所述。调用图也将不正确。这似乎适用于所有语言,而不仅仅是 C。
这已被多次报告为错误:
doxygen 文档中的“已知问题”部分也描述了类似的问题:
如果类 A 已具有名称为 f 的成员且参数列表相同,则无法使用 \relates 或 \relatesalso 命令在类 A 中插入非成员函数 f。
有一些希望;有人提出了一个补丁来更好地处理同名函数: #4365 getDefs failed to resolve local function names if same global name exist。
此补丁实现了以下两种解决重复名称的策略。首先,是在当前文件中定义的名称,使用本地名称。其次尝试使用原型定义匹配名称。
这将部分解决问题。不幸的是,该票自 2012 年以来就没有任何活动......
这对你有用吗?
该示例被精简为两个文件ac和bc,只有一个函数(冲突)函数。
文件交流
/**
* \defgroup agroup Group A
*/
/**
* the function in a,
* see also \link b.c myfunc() \endlink the other one
* \ingroup agroup
*/
void myfunc() {
;
}
Run Code Online (Sandbox Code Playgroud)
文件bc
/**
* \defgroup bgroup Group B
*/
/**
* the function in b,
* see also \link a.c myfunc() \endlink the other one
* \ingroup bgroup
*/
void myfunc() {
;
}
Run Code Online (Sandbox Code Playgroud)
如您所见,myfunc()有名称冲突。我在文档中放置了另一个函数的链接。
我在函数名称前面添加了filename。
我用doxygen编译了它,并且链接有效(它们从一个函数的每个文档链接到另一个函数)。