gcc — как найти путь к заголовочному файлу

Есть ли у нас какой-либо вариант в gcc, чтобы найти, откуда включается конкретный заголовок файла.
У меня есть следующий сценарий:

file_1.h:
объявить тип type_1

file_2.h:

type_1 var;

Я хочу проверить, где был file_1.h включен в библиотеку, которую я создаю.

6

Решение

У gcc есть опция -M:

-M Вместо вывода результата предварительной обработки выведите
Правило, подходящее для make, описывающее зависимости основного источника
файл. Препроцессор выводит один
создайте правило, содержащее имя объектного файла для этого исходного файла, двоеточие и имена всех включенных файлов, включая
исходя из -include или -imacros
параметры командной строки.

Если вы делаете, gcc -M filename.c, он перечислит все заголовки. То же самое с g ++.

9

Другие решения

Если вы посмотрите на предварительно обработанный вывод, он покажет заголовки, которые были включены, в том порядке, в котором они были включены, так что вы можете увидеть, где появляется file_1.h, и работать в обратном направлении, чтобы увидеть, какой файл включал его, и какой файл включал этот и т. Д.

-E опция говорит GCC только выполнить шаг предварительной обработки и остановить перед компиляцией.

0

По вопросам рекламы [email protected]