我有一个C库,我想自动生成一些API文档。 Doxygen似乎是这类事物的事实上的工具,所以我写了几个玩具类(使用与我的库相同的编码风格)来测试它。关于编码风格的几点注意事项:
.h
)文件,其中包含类的数据结构的typedef和所有类方法的原型。这是我希望我的图书馆用户能够看到的信息。.c
文件包含完整的数据结构定义以及所有类方法的实现。实施细节不应出现在API文档中。当我在我的例子中运行Doyxgen时,这就是我得到的:http://standage.github.io/doc-test。生成的文档有点笨拙 - 有一个数据结构列表和一个文件列表。理想情况下,我想要的是一个类列表,其中每个类页面显示与该类关联的函数/方法,以及类名链接到该类的详细信息页面。 Doxygen(或任何其他工具)可以实现吗?
答案 0 :(得分:0)
查看配置文件中的Exclude系列标记。
由于您的源位于./src/目录中,因此一个选项可能是使用以下选项之一:
排除目录:
EXCLUDE = /src
排除文件名模式:
EXCLUDE_PATTERNS = *.c
这些都不在我的头脑中。您可能必须添加一些路径信息。我希望使用第一个或两个将产生没有C文件中任何注释的输出。
作为旁注,您认为使用“课程”界面的结构是否符合您的要求?
答案 1 :(得分:0)
Doxygen支持“C类”的文档 - 只需添加
\class
指令包含其数据成员的结构\memberof
指令到其功能\public
或\private
指令到函数/成员示例:
/** This is My Class!
\class MyClass
*/
typedef struct MyClass
{
/** This is member A
\private
*/
int memberA;
/** This is member B
\private
*/
int memberB;
} MyClass;
/** A private member function of MyClass
\param i Some value
\private
\memberof MyClass
*/
static void MyClass_privateFunction(struct MyClass* this, int i)
{
}
/** A public member function of MyClass
\param j Some other value
\public
\memberof MyClass
*/
void MyClass_publicFunction(struct MyClass* this, int j)
{
}
如果您将Doxygen的EXTRACT_PRIVATE
设置为NO
,则只会记录公共部分。