You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Doxygen不同父组下创建同名子组内容合并问题求助

问题原因

Doxygen 中@defgroup定义的组ID是全局唯一标识,你多次定义同名的Constructors、Other组,本质上是在操作同一个全局组,因此两个父组引用时都会带出所有归到该全局组的内容。

解决方法

方法1:全局子组指定唯一ID+相同显示名

@defgroup支持传入第二个参数作为文档中显示的组名,你只需要保证组ID全局唯一,显示名可以完全相同,分组结构就会符合你的预期。
修改后的分组定义代码示例:

/** @defgroup Group1 Group 1
 * Description for Group 1
 */
/** @defgroup Group2 Group 2
 * Description for Group 2
 */

/** @defgroup Group1_Constructors Constructors
 *  @ingroup Group1
 */
/** @defgroup Group2_Constructors Constructors
 *  @ingroup Group2
 */

/** @defgroup Group1_Other Other
 *  @ingroup Group1
 */
/** @defgroup Group2_Other Other
 *  @ingroup Group2
 */

修改后的类代码示例:

/**
 * @ingroup Group1
 * @{
 */
class Class1 {
     /**
     * @ingroup Group1_Constructors
     * @{
     */
     Class1();
     // 其他构造函数
     /** @}*/
     /**
     * @ingroup Group1_Other
     * @{
     */
      void Random();
      // 其他函数
     /** @}*/
}; /** @}*/

/**
 * @ingroup Group2
 * @{
 */
class Class2 {
     /**
     * @ingroup Group2_Constructors
     * @{
     */
     Class2();
     // 其他构造函数
     /** @}*/
     /**
     * @ingroup Group2_Other
     * @{
     */
      void Random();
      // 其他函数
     /** @}*/
}; /** @}*/

方法2:使用@name定义本地子组(更简洁)

如果你的子组仅在对应父组内生效,不需要全局引用,可以直接在父组的作用域内用@name定义本地子组,不需要提前声明@defgroup,也不会出现全局ID冲突问题:

/** @defgroup Group1 Group 1
 *  Description for Group 1
 *  @{
 */
class Class1 {
     /**
     * @name Constructors
     * @{
     */
     Class1();
     // 其他构造函数
     /** @}*/

     /**
     * @name Other
     * @{
     */
     void Random();
     // 其他函数
     /** @}*/
};
/** @}*/ // Group1 结束

/** @defgroup Group2 Group 2
 *  Description for Group 2
 *  @{
 */
class Class2 {
     /**
     * @name Constructors
     * @{
     */
     Class2();
     // 其他构造函数
     /** @}*/

     /**
     * @name Other
     * @{
     */
     void Random();
     // 其他函数
     /** @}*/
};
/** @}*/ // Group2 结束

内容的提问来源于stack exchange,提问作者Dóri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 22:06:03