gpt4 book ai didi

doxygen - 如何管理具有多个库的 Doxygen 项目?

转载 作者:行者123 更新时间:2023-12-05 05:29:10 27 4
gpt4 key购买 nike

我正在开发一个使用多个库的项目,其结构如下:

/源代码
/libs/libOne
/libs/libTwo

我想生成一个包含所有代码和库的 Doxygen 页面。这非常简单,只需将 Doxygen 指向根目录即可。但是,我希望将 doxygen 输出分组,这样我就可以清楚地看到每个类/文件属于哪个库。然而,由于库不是我写的,我不想更改它们以添加\addtogroup 注释。

我不介意生成的文档是否低于库标准(例如,如果它们不包含 doxy 兼容注释),我仍然希望包含它们以便我可以查看调用图并快速浏览类等.

如何在不更改库源代码的情况下将每个库代码分组到模块中?

谢谢

最佳答案

您应该将所有必要的文档放在外部文件中。我不知道该怎么做,但我已经尝试建立一个像您这样的最小环境并且效果很好。只是为了记录一些东西,我在 Doxygen 站点上获取了示例代码:

测试1.h:

#define MAX(a,b) (((a)>(b))?(a):(b))
typedef unsigned int UINT32;
int errno;
int open(const char *,int);
int close(int);
size_t write(int,const char *, size_t);
int read(int,char *,size_t);

并编写了完全无用的 test2.h(只是为了有两个不同的文件...):

void itdoesnothing();

精彩的部分来了。我制作了一个外部头文件只是为了记录上面的内容,将其称为 test_doc.h(同样,只是使用了 Doxygen 站点上的示例):

/*! \addtogroup everything The main group
This group contains everything.
@{
*/

/*! \file test.h
\brief A Documented file.

Details.
*/

/*! \def MAX(a,b)
\brief A macro that returns the maximum of \a a and \a b.
Details.
*/

/*! \var typedef unsigned int UINT32
\brief A type definition for a .
Details.
*/

/*! \addtogroup err Error handling
Error handling related stuff
@{
*/

/*! \var int errno
\brief Contains the last error code.
\warning Not thread safe!
*/

/*! @} */

/*! \addtogroup fdrelated File description related
File descriptor related stuff.
@{
*/

/*! \fn int open(const char *pathname,int flags)
\brief Opens a file descriptor.

\param pathname The name of the descriptor.
\param flags Opening flags.
*/

/*! \fn int close(int fd)
\brief Closes the file descriptor \a fd.

\param fd The descriptor to close.
*/

这成功地记录了 Doxygen 的两个文件。这样您也可以按照手册中的说明对文件、命名空间等进行分组:

Members of a group can be files, namespaces, classes, functions, variables, enums, typedefs, and defines, but also other groups.

所以尝试阅读 http://www.doxygen.nl/grouping.html也看看我上面提到的事情有什么可能。祝你好运!

关于doxygen - 如何管理具有多个库的 Doxygen 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2908086/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com