Clang不支持Doxygen的retval标签。

7

我正在尝试使用clang 3.6和-Weverything编译一个C文件,但是在我的Doxygen注释中包含了\retval标签,导致编译失败。

我的代码如下:

/***************************************************************************/
/** Main Function.
 *
 * This function represents the main functionality.
 *
 * \retval 0 successful
 * \retval other failed
 */
int main(
    int argc,                               /**< argument count */
    char **argv                             /**< argument list */
)
{
    ...
    return 0;
}

当我尝试使用clang编译它时,会出现以下警告。
$> clang-3.6 -Wall -Weverything -Werror -o main main.c
main.c:31:4: error: unknown command tag name [-Werror,-Wdocumentation-unknown-command]
 * \retval 0 successful
   ^

我知道我可以通过提供-Wno-documentation-unknown-command来禁用警告,但我认为这不是最好的解决方案。


这是唯一明智的解决方案。要么这样,要么禁用-Weverything。 - Rapptz
虽然我是支持开启很多额外警告的人,但 -Weverything 实话实说有点过头了。 - Some programmer dude
或者您可以手动将这些命令添加到clang... - cerkiewny
尝试使用-fcomment-block-commands手动指定retval。 - moof2k
除非你正在追踪一个实际的问题,否则使用“-Werror -Weverything”通常是毫无意义的,因为它会打开所有可用的诊断功能,其中许多不是关于代码问题的警告,而是像优化相关信息之类的东西。 - MikeMB
1个回答

4

正如注释所述,您可以使用以下选项:

-fcomment-block-commands=retval

这将阻止clang抱怨标签\ retval。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接