Вы должны поместить всю необходимую документацию во внешние файлы. Я не знал, как это сделать, но я пытался создать минимальную среду, подобную вашей, и она работала хорошо. Просто для документирования чего-то, что я взял пример кода на сайте Doxygen:
test1.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. Таким образом, вы также можете группировать файлы, пространства имен и т. Д., Как указано в руководстве:
Членами группы могут быть файлы, пространства имен, классы, функции, переменные, перечисления, определения типов и определения, а также другие группы.
Поэтому попробуйте тоже прочитать http://www.doxygen.nl/grouping.html и посмотреть, что можно сделать с вещами, которые я упомянул выше. Удачи!