Doxygen не документирует основную функцию в main.СРР

У меня есть main.cpp, который содержит структуру, некоторые глобальные константы и основную функцию.

Я запустил doxygen и единственную документацию, которую я получаю в выходном индексе.html для моей структуры.

Я хочу, чтобы doxygen документировал этот индекс.html-файл my main () также. Что я делаю неправильно?

    /// Definition of Pi
    const auto Pi = 3.141592653589793238462643383279502884197169399;

    /// struct myStruc
    /// brief myStruc description
    ///
    struct myStruc
    {
         /// Comments inside myStruc
    };

    /// file

    /// brief  Main function
    /// param  argc An integer argument count of the command line arguments
    /// param  argv An argument vector of the command line arguments
    /// return an integer 0 upon exit success
    int main(int argc, char** argv)
    {
        /// Comments I would like to be documented in as well
        return 0;
    }

4 ответов


это потому, что вы документируете глобальный объект, который doxygen по умолчанию не документирует. От руководство doxygen (выделено мной):

для документирования члена класса C++ необходимо также документировать сам класс. То же самое относится и к пространствам имен. для документирования глобальной функции C, typedef, перечисления или определения препроцессора необходимо сначала документировать файл, содержащий его (обычно это будет файл заголовка, потому что этот файл содержит информацию, экспортируемую в другие исходные файлы).

давайте повторим, потому что это часто упускается из виду: чтобы документировать глобальные объекты (функции, typedefs, перечисление, макросы и т. д.), необходимо документировать файл, в котором они определены. другими словами, должен быть хотя бы

/*! \file */ 

или

/** @file */ 

строки в этом файле.

поэтому попробуйте добавить одну из вышеперечисленных двух строк в main.СРР файл.


убедится HIDE_IN_BODY_DOCS установлено значение NO и использовать что-то вроде этого:

/// \file

/// \brief  Main function
/// \param  argc An integer argument count of the command line arguments
/// \param  argv An argument vector of the command line arguments
/// \return an integer 0 upon exit success
int main(int argc, char** argv)
{
  /// Comments I would like to be documented in as well
  return 0;
}

для меня я должен был убедиться, что у меня есть этот набор:

SHOW_FILES = ДА

все ваши глобальные функции будут отображаться на вкладке файлы внутри каждого файла. Кроме того, это помогает, если у вас есть @file или \file, определенные в верхней части кода.


из онлайн-руководства в разделе "Документация в других местах" : http://www.stack.nl / ~Дмитрий / doxygen / руководство / docblocks.html#specialblock

"Doxygen позволяет размещать блоки документации практически в любом месте (исключение находится внутри тела функции или внутри обычного блока комментариев стиля C)."

Это имеет смысл, потому что nitty gritty о том, как работает функция (ее реализация), как правило, не желанный. Я считаю, что цель Doxygen-помочь в документации, которая легко поддается поиску, чтобы кодеры могли найти, где что-то есть, и посмотреть, что они делают (и какие параметры передаются в него, что он возвращает и т. д.), Чтобы узнать, как их использовать, но не как это фактически реализовано. Это потребует фактического просмотра источника функции (который также доступен в файлах, сгенерированных Doxygen). Кроме того, если вы заметите, все примеры (я думаю) показывают документацию в заголовочных файлах, который не имеет какой-либо реализации, что заставляет меня полагать, что документация предназначена для заголовочных файлов, но инструмент дает вам гибкость, чтобы поместить в исходные файлы.

Это моя точка зрения в любом случае. Кто-нибудь думает иначе?