Генерация документации Doxygen для заголовков C STL

#c #c 14 #doxygen #gnu

#c #c 14 #doxygen #gnu

Вопрос:

Пытаюсь сгенерировать выходные данные Doxygen для заголовков GNU C STL (расположены в /usr/include/c /6/ каталоге). Это вроде как работает, оно генерирует выходные данные, но результат довольно скудный — документация не генерируется, например, для общедоступных функций std :: vector и т.д. Функции файла заголовка выглядят должным образом аннотированными, но по-прежнему не могут получить желаемый результат.

Пытался настроить многочисленные записи в Doxyfile (РЕКУРСИВНЫЙ, EXTRACT_ALL и т.д.), Но безрезультатно. Любые указания были бы оценены.

 $ doxygen --version
1.8.13
  

В качестве примера, аннотация для функции std::vector::swap() выглядит следующим образом:

  /**
  *  @brief  Swaps data with another %vector.
  *  @param  __x  A %vector of the same element and allocator types.
  *
  *  This exchanges the elements between two vectors in constant time.
  *  (Three pointers, so it should be quite fast.)
  *  Note that the global std::swap() function is specialized such that
  *  std::swap(v1,v2) will feed to this function.
  */
void
swap(vectoramp; __x) _GLIBCXX_NOEXCEPT
{
     //....
}
  

Комментарии:

1. Было бы неплохо узнать, какую версию doxygen вы используете, а также пример, часть, упомянутой проблемы / файла для тех, у кого нет этого файла.

Ответ №1:

Не ответ, но я хотел включить изображение.

Я взял код, как указано, простой Doxyfile, для которого только EXTRACT_ALL установлено значение YES , и я получаю:

введите описание изображения здесь

Возможно, я что-то упускаю из виду, но для меня это выглядит нормально. Если я что-то пропустил, пожалуйста, укажите это в исходном вопросе в качестве редактирования.

  • какое имя файла вы использовали?

Некоторые побочные замечания:

  • текущая версия doxygen 1.8.15
  • также взгляните на главу «Предварительная обработка» для _GLIBCXX_NOEXCEPT

Ответ №2:

На самом деле существует «официальный» способ генерации этой документации: https://gcc.gnu.org/onlinedocs/libstdc /manual/documentation_hacking.html

Если ничего другого, вы могли бы взять пакет GCC и посмотреть, какой файл Doxygen в нем есть, а затем перенастроить его, чтобы он выглядел в вашем системном каталоге заголовков. В заголовках много макросов препроцессора, поэтому, вероятно, Doxygen на них спотыкается.