Ответ 1
- Щелкните правой кнопкой мыши проект, "Свойства проекта"
- "Свойства конфигурации" → "C/С++" → "Дополнительно".
- Установите "Показать включает" в "Да".
Полная иерархия заголовков будет распечатана в окне вывода при компиляции каждого файла.
В Visual С++ можно найти файл заголовка, где любое имя (переменная или тип) определено, нажав F12 на нем или выбрав Перейти к определению. Эта функция очень полезна, но она отображает только конечное местоположение (заголовочный файл), где определено имя. Есть ли способ определить цепочку файлов заголовков, которые ведут из моего исходного файла в конечный заголовочный файл для заданного имени?
Например, рассмотрим этот код:
// main.cpp
#include <stddef.h>
int main()
{
size_t s;
return 0;
}
В Visual С++ 2010, если я посмотрю определение size_t
в приведенном выше main.cpp
, он помещает меня в некоторый файл с именем sourceannotations.h
. Я знаю, что эта цепочка заголовков начинается с stddef.h
(который я включил) и заканчивается на sourceannotations.h
. Как выяснить ссылки в середине этой цепочки?
Полная иерархия заголовков будет распечатана в окне вывода при компиляции каждого файла.
Вы можете использовать обратные инженерные инструменты, такие как Doxygen, Understanding Analyst и т.д. Это поможет вам понять полный поток переменных, вызовы функций.
В диалоговом окне свойств в разделе C/С++ Preprocessor включите Preprocess в файл. Если вы скомпилируете main.cpp, это сгенерирует main.i.
Затем вы можете посмотреть в main.i и посмотреть, какой файл включает в себя другой файл.