gsa*_*ras 7 c++ doxygen c-preprocessor
正如这里建议的那样,我的代码中有一些部分是由编译标志启用的.
例如,我有这段代码:
#ifdef MYPROJ_HAS_BOOST
...
#endif
Run Code Online (Sandbox Code Playgroud)
Doxygen会将它们排除,因为它们被省略,因为MYPROJ_HAS_BOOST没有定义.我解决了它,添加了一个#define MYPROJ_HAS_BOOST.
然而这并不好,因为将来(我计划扩展项目),当重新生成我的文档时,也许我会忘记这一点.
有没有办法说Doxygen(理想情况下通过doxywizard)也考虑到我的代码的这些部分?
在你的Doxyfile(或你重命名为它的任何东西)中添加线条
PREDEFINED = MYPROJ_HAS_BOOST
Run Code Online (Sandbox Code Playgroud)
您也可以通过将变量设置PREDEFINED为include来在doxywizard中执行此操作MYPROJ_HAS_BOOST.
我今天的理解是,doxygen 支持定义。在您的情况下,您应该启用
ENABLE_PREPROCESSING = YES
Run Code Online (Sandbox Code Playgroud)
并设置
PREDEFINED = MYPROJ_HAS_BOOST
Run Code Online (Sandbox Code Playgroud)
或者
PREDEFINED = MYPROJ_HAS_BOOST=1
Run Code Online (Sandbox Code Playgroud)
如果您想反转它(如您在示例中想要的那样)更改为
PREDEFINED = MYPROJ_HAS_BOOST=0
Run Code Online (Sandbox Code Playgroud)
是在这里更详细地解释。
Doxygen定义了DOXYGEN可以使用的宏。
#if defined(MYPROJ_HAS_BOOST) || DOXYGEN
...
#endif
Run Code Online (Sandbox Code Playgroud)
如果您有很多宏,则添加Doxygen宏然后将其与Doxyfile中的宏同步可能会更容易。
| 归档时间: |
|
| 查看次数: |
4821 次 |
| 最近记录: |