Я использую Doxygen 1.8.11 вместе с плагином eclipse eclox.я попытался сгенерировать граф вызовов для моих исходных файлов.когда я зарегистрировался в одном из файлов, я заметил, что граф вызовов содержал вызов функции, который фактически отключен #define
, я ожидал, что не вызову этого вызова функции в графе вызовов.
сверхуисходного файла:
#define MACRO_NAME FALSE
....
void Func_1(int *p)
{
....
#if (MACRO_NAME == TRUE)
Func_Call_2()
#else
Func_Call_3()
#endif
}
FALSE и TRUE определены в одном из заголовков, которые я включил в настройки в «Включить пути», и я также получаю гиперссылку в html-отчете для FALSE и TRUE, так что doxygenможет найти определение.
и Func_Call_2, и Func_Call_3 () отрисовываются в графе вызовов, когда на самом деле я хочу видеть только Func_Call_3 ().
мои настройки в файле doxy:
Enable Preprocessing YES
Macro Expansion NO
Expand Only Predefined NO
Search Includes YES
Extract All YES
Extract Static YES
я также пытался с Macro Expansion
ДА, но потом я вообще не получил колл-колл для этой функции Func_1
только после того, как вернул значение НЕТ, граф вызовов снова рисуется в html-файле
заголовочный файл, в котором определены FALSE/TRUE
, начинается следующим образом:
#ifndef HEADER_H
#define HEADER_H
.....
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
есть ли другие настройки, которые я могу попробовать?чтобы doxygen нарисовал граф вызовов без отключенного кода?