Как заставить Doxygen расширять макросы из включаемых файлов? - PullRequest
0 голосов
/ 25 февраля 2011

У меня есть несколько многострочных макросов, определенных в файле с именем macros.h.В моем докси-файле у меня есть

ENABLE_PREPROCESSING   = YES
MACRO_EXPANSION        = YES
EXPAND_ONLY_PREDEF     = NO
PREDEFINED             =
EXPAND_AS_DEFINED      =
SKIP_FUNCTION_MACROS   = NO

, но Doxygen по-прежнему не будет расширять макросы в любом исходном файле, который включает macros.h.Я запустил doxy-файл препроцессора doxygen -d, чтобы увидеть выходные данные препроцессора, и он выводит такие сообщения, как:

#include macros.h: not found or already included! skipping...

Ответы [ 2 ]

4 голосов
/ 25 февраля 2011

Вы сообщили компилятору о пути включения, но не указали doxygen. Поэтому он пытается открыть «macros.h» и получает ошибку «файл не найден».

Вам необходимо правильно установить INCLUDE_PATH в вашем Doxyfile.

1 голос
/ 21 марта 2011

@ Бен: Ты действительно заставил INCLUDE_PATH работать?

Я понимаю теорию.Я настроил INCLUDE_PATH, как объяснено (как в абсолютной, так и в относительной форме), но безрезультатно.Я установил для INCLUDE_FILE_PATTERNS значение * .h.Тем не менее, при обработке моих файлов .cpp Doxygen находит все заголовки в каталоге INPUT, но не находит никаких заголовков в моем подкаталоге lib /.

Единственные решения, которые я нашел:

1) Создайте символическую ссылку в каталоге INPUT на каждый заголовок в его подкаталоге lib /.Это уродливо и не поддается генерализации.

2) Установите для тега RECURSIVE значение YES.Это нежелательно, поскольку теперь в сгенерированную документацию добавляется все содержимое каталога / подкаталога INPUT.

Я склонен полагать, что функциональность INCLUDE_PATH просто нарушена (по крайней мере в версии 1.7.1, которую я использую).

...