Doxygen addtogroup问题与特殊功能FUNC(..)

时间:2017-06-09 06:48:13

标签: c doxygen

我有嵌入式系统C代码,我使用doxygen来使用addtogroup命令进行记录。查看html输出时,特殊功能FUNC(..)之后的功能之一未出现在模块页面中。这是一个简短的示例代码。


    /*!
      \addtogroup Test
      \brief This is a TestModule
      \{
     */
    extern FUNC(void, IOHWAB_APPL_CODE) Init_Tester(void);

    void TimerOn(void)
    {
    }
    void ADC_On(void)
    {
    }

    /*! \} */ //end of addtogroup

在上面的示例中,doxygen仅显示以下内容。

  

extern FUNC(void,IOHWAB_APPL_CODE)
无效ADC_On(无效)

如果我在extern FUNC(..)和void TimerOn()之间添加虚拟函数(即void dummy()),则显示除虚函数之外的所有函数。

  

extern FUNC(void,IOHWAB_APPL_CODE)
void TimerOn(void)
无效   ADC_On(无效)

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我测试了以下代码:

INFO  [org.jboss.weld.deployer] (MSC service thread 1-6) WFLYWELD0003: Processing weld deployment ear-1.0.0.ear
WARN  [org.jboss.modules] (MSC service thread 1-6) Failed to define class ejb.MyServiceImpl in Module "deployment.ear-1.0.0.ear.ejb-1.0.0.jar:main" from Service Module Loader: java.lang.NoClassDefFoundError: Failed to link ejb/MyServiceImpl (Module "deployment.ear-1.0.0.ear.ejb-1.0.0.jar:main" from Service Module Loader): api/MyService
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.__newInstance(DelegatingConstructorAccessorImpl.java:45)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
    at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:446)
    at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:274)
    at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:78)
    at org.jboss.modules.Module.loadModuleClass(Module.java:606)
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:363)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:351)
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:93)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at org.jboss.as.ee.utils.ClassLoadingUtils.loadClass(ClassLoadingUtils.java:21)
    at org.jboss.as.ee.utils.ClassLoadingUtils.loadClass(ClassLoadingUtils.java:14)
    at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processComponentConfig(InterceptorAnnotationProcessor.java:84)
    at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.deploy(InterceptorAnnotationProcessor.java:76)
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:147)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

我得到的文件是这样的:

/*!
  \addtogroup   Test
  \brief        This is a TestModule
  \{
 */
extern FUNC(void, IOHWAB_APPL_CODE) Init_Tester(void)
{
}

void Timer(void){}

void TimerOn(void)
{
}

void ADC_On(void)
{
}

/*! \} */ //end of addtogroup

如果我将函数工具改为declare,文件中的函数就消失了。 doxygen似乎只记录了函数的工具,它错误地解析了TimerOn的FUNC工具。所以,错过了文档中的TimerOn函数。

我不确定,只是测试它并猜测结果。希望这可以帮到你。