Как узнать фактический порядок включаемых файлов после предварительной обработки?

У меня есть один файл .cpp, который включает несколько файлов заголовков. Эти файлы заголовков могут также включать другие файлы заголовков. Предусмотрены средства защиты включения для предотвращения включения одного и того же файла дважды.

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

Я попытался gcc -E получить выходные данные препроцессора, но сгенерированный код этого не сделал. Кажется, он пригоден для извлечения нужной мне информации. Может ли кто-нибудь помочь?

Редактировать

Я спрашиваю, потому что мне нужно включить мои файлы заголовков в файл интерфейса SWIG в правильном порядке, чтобы избежать создания странных оболочек SWIGTYPE_p_ *.

Обновление

Спасибо за ответы. Использование cpp -H кажется очень полезным. Однако я не могу найти способ grep или sed этих результатов, чтобы получить простой список файлов заголовков в правильном порядке и без дубликатов.

7
задан Brian Tompsett - 汤莱恩 20 June 2016 в 18:19
поделиться