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). Кроме того, если вы заметите, все примеры (я думаю) показывают документацию в заголовочных файлах, который не имеет какой-либо реализации, что заставляет меня полагать, что документация предназначена для заголовочных файлов, но инструмент дает вам гибкость, чтобы поместить в исходные файлы.
Это моя точка зрения в любом случае. Кто-нибудь думает иначе?