2010-10-21 11 views
6

Soy nuevo en el uso de Doxygen y pude hacer que funcione sin problemas. Pude documentar mis clases y estructuras y genera los archivos HTML perfectamente. El problema al que me estoy enfrentando es que no analizará mi archivo main.cpp. Todas las clases y estructuras tienen sus propios archivos .h y .cpp y procesan bien. ¿Cómo obtengo Doxygen para hacer la documentación para main.cpp? No tiene un archivo .h ya que aquí es donde el programa comienza y termina. Ni siquiera sabría qué poner en el archivo .h para main. Estoy usando Doxywizard en Windows.Doxygen no procesará main.cpp

Editar:

pongo esto en el principal y genera una página principal:

/** 
@mainpage 

This is a test application. 

@author Alex 
@date 10/21/2010 
@version 1.0 
*/ 

Pero luego más abajo en el archivo donde los prototipos de las funciones son tengo esto y que no consigue Analizada :

/** 
@brief Error handler for the PDF writer. 

It does nothing. It just has to exist. 
*/ 
void error_handler (HPDF_STATUS error_no, 
        HPDF_STATUS detail_no, 
        void   *user_data) 
{ 
} 
+0

¿Necesita siquiera la documentación principal? Por lo general, es solo establecer algunas cosas, tal vez llamar a la función que analiza args de línea de comando y luego llamar a alguna función. – delnan

+0

Probablemente esté relacionado con una máscara que tienes en tu archivo de configuración de Doxygen. ¿Puedes publicar el contenido de tus valores de configuración 'INPUT' y' FILE_PATTERNS'? – ladenedge

+0

Ambos 'INPUT' y' FILE PATTERNS' están vacíos. Básicamente, instalé el programa, encontré mi proyecto y presioné "Ejecutar". Supongo que main no necesita ser comentado, pero hay otras funciones en el mismo archivo que se usan y necesitan ser comentadas. – alex

Respuesta

6

Puse esto en la parte superior de main.cpp y funcionó. Imagínate.

/** 
@file main.cpp 
*/ 
+0

Usted, señor, me ha ahorrado algunas horas más de búsqueda. Gracias un montón. ¿Tiene alguna idea de por qué NECESITA un comando @file? – SolarBear

+1

No importa, vea mi respuesta a continuación. – SolarBear

+0

No necesita "main.cpp". @file es suficiente. Lo necesita porque no tiene ninguna clase o estructura documentada en ese archivo. –

2

Si INPUT y FILE_PATTERNS están vacíos, se debe buscar archivos * .cpp (y muchos otros patrones) en el directorio actual. (Esto de la Doxygen manual.)

Desde la suya están vacías, espero que una de dos cosas está sucediendo si no está recibiendo la documentación main.cpp:

  1. main.cpp no ​​está en la corriente directorio. Para descartar esto, asegúrese de estar ejecutando Doxygen desde el mismo directorio que ambos su archivo de configuración y main.cpp.
  2. Hay un error de sintaxis en la documentación de main.cpp. Estos pueden ser difíciles de detectar, ya que Doxygen generalmente no aborta cuando encuentra un error, sino que simplemente se salta. Si este es el problema, analice la salida de Doxygen cuando genere sus documentos línea por línea.

Si ninguna de estas ideas soluciona su problema, es posible que necesitemos más información. Salida de ls -R, salida de la ejecución de Doxygen, etc. ¡Buena suerte!

+0

principal.cpp está en la carpeta en la que Doxygen está buscando y no muestra ningún error en la salida, solo advertencias de las otras clases que aún se procesa correctamente. Agregué más información a mi pregunta anterior. – alex

1

Hice algunas investigaciones en este ... Desde el doxygen manual:

Importante: La documentación de las funciones globales, variables, typedefs, y enumeraciones sólo serán incluidos en el salida si el archivo en el que se encuentran está documentado también.

¡Ya lo tiene!