【问题标题】:Doxygen document C functions in Objective-C projectsDoxygen 记录 Objective-C 项目中的 C 函数
【发布时间】:2023-12-04 14:43:02
【问题描述】:

我正在用 Objective-C 编写一个项目,我已经开始使用 Doxygen 来自动生成文档。该项目的很大一部分包含基本的 C 函数。不幸的是,Doxygen 没有记录 C 函数,只有 Objective-C 类及其方法。我在几个头文件中定义了函数,如下所示:

BOOL myFunc(void);

然后我在 .m. 中实现了。

Doxygen 没有检测到 Objective-C 中的直接 C 函数,还是我必须打开一个选项?我为 Doxygen 定义的函数是否不正确?

【问题讨论】:

    标签: objective-c documentation doxygen


    【解决方案1】:

    Doxygen 确实记录了直接的 C 函数。

    经过更多测试

    使用 Doxywizard 并在专家模式下检查值 - 当您将鼠标悬停在事物上时,它会提供一些很好的帮助。特别是,您应该更改默认值,因此 EXTRACT_ALL 是 检查

    我认为需要设置这个,与默认设置相反,可能是一个错误。

    如果绝望,请在问题中发布设置。我刚刚从头开始创建了一个示例,并验证了当我使用 EXTRACT_ALL 时您的函数使用 Doxygen 显示,但如果我关闭它,则没有文件成员部分。

    您应该在文件 - 文件成员下看到函数,如 VTK 文档中的 seen here

    很抱歉,我没有早点拿起它,但我总是打开 EXTRACT_ALL,因为我正在处理大多数函数缺乏特殊 cmets 的遗留代码库。

    较早的想法尝试在文件顶部添加@file 注释以查看是否正在处理。

       /// @file fred.h This file defines functions used in fred.m
    

    我敢打赌,您正在运行的 doxygen 设置文件中不包含您的文件扩展名或目录。

    【讨论】:

    • 不处理它的定义。文件列在其中。我试过你的@file 没有帮助。在 Objective C 下运行时,它是否坚持只使用方法并避免使用 c 函数?
    • 好吧,效果更好,现在列出了所有这些,这很棒,但它仍然没有用 cmets 记录它们。
    • NVM 我修好了,非常感谢! (我会尽快给你赏金)
    • 我发现设置 EXTRACT_ALL 并没有为我修复它,但是设置 SHOW_FILES = YES 修复了它。