Doxygen 不会在具有属性的变量之后记录变量
Doxygen does not document variables after variable with attribute
我有一个 .c 文件,其中声明了几个变量。其中之一具有属性 __align(4)
,即声明为 __align(4) static uint32_t myVar;
当我为这个源文件创建 doxygen 文档时,它只列出了在 __align(4) static uint32_t myVar;
之前声明的变量(myVar
也没有包含在文档中)。
示例:
uint32_t var1; //documented by doxygen
static uint32_t var2; //documented by doxygen
__align(4) static uint32_t myVar; //NOT documented by doxygen
uint32_t var4; //NOT documented by doxygen
我怀疑 doxygen 看到 __align()
实际上是一个函数,然后停止寻找变量声明。
如何让 doxygen 列出我声明的所有变量?一个“hacky”的解决方案是在我的变量部分的底部声明对齐的变量,但对齐的变量仍然不会包含在文档中。
非常感谢任何帮助:)
问候
这个问题有很多地方需要注意。
- 示例中根本没有文档,因此我们需要设置
EXTRAC_ALL=YES
(参见 https://www.doxygen.nl/manual/config.html#cfg_extract_all)或记录变量
- 一些变量是
static
,这意味着我们还需要设置EXTRACT_STATIC=YES
(参见https://www.doxygen.nl/manual/config.html#cfg_extract_static)
myVar
的声明具有 non-standard 属性 __align
,这必须以与属性 __attribute__
类似的方式处理,参见 https://www.doxygen.nl/manual/preprocessing.html) 所以:
PREDEFINED = __align(x)=
MACRO_EXPANSION = YES
所以完整的 Doxyfile
看起来像:
EXTRACT_STATIC=YES
PREDEFINED = __align(x)=
MACRO_EXPANSION = YES
和源代码:
/// \file
/** some docu */
uint32_t var1; //documented by doxygen
/** some docu */
static uint32_t var2; //documented by doxygen
/** some docu */
__align(4) static uint32_t myVar; //NOT documented by doxygen
/** some docu */
uint32_t var4; //NOT documented by doxygen
一切都按预期进行了记录。
我有一个 .c 文件,其中声明了几个变量。其中之一具有属性 __align(4)
,即声明为 __align(4) static uint32_t myVar;
当我为这个源文件创建 doxygen 文档时,它只列出了在 __align(4) static uint32_t myVar;
之前声明的变量(myVar
也没有包含在文档中)。
示例:
uint32_t var1; //documented by doxygen
static uint32_t var2; //documented by doxygen
__align(4) static uint32_t myVar; //NOT documented by doxygen
uint32_t var4; //NOT documented by doxygen
我怀疑 doxygen 看到 __align()
实际上是一个函数,然后停止寻找变量声明。
如何让 doxygen 列出我声明的所有变量?一个“hacky”的解决方案是在我的变量部分的底部声明对齐的变量,但对齐的变量仍然不会包含在文档中。
非常感谢任何帮助:)
问候
这个问题有很多地方需要注意。
- 示例中根本没有文档,因此我们需要设置
EXTRAC_ALL=YES
(参见 https://www.doxygen.nl/manual/config.html#cfg_extract_all)或记录变量 - 一些变量是
static
,这意味着我们还需要设置EXTRACT_STATIC=YES
(参见https://www.doxygen.nl/manual/config.html#cfg_extract_static) myVar
的声明具有 non-standard 属性__align
,这必须以与属性__attribute__
类似的方式处理,参见 https://www.doxygen.nl/manual/preprocessing.html) 所以:PREDEFINED = __align(x)=
MACRO_EXPANSION = YES
所以完整的 Doxyfile
看起来像:
EXTRACT_STATIC=YES
PREDEFINED = __align(x)=
MACRO_EXPANSION = YES
和源代码:
/// \file
/** some docu */
uint32_t var1; //documented by doxygen
/** some docu */
static uint32_t var2; //documented by doxygen
/** some docu */
__align(4) static uint32_t myVar; //NOT documented by doxygen
/** some docu */
uint32_t var4; //NOT documented by doxygen
一切都按预期进行了记录。