Как узнать, какие заголовки включены, не глядя на предварительно обработанный код в GCC?

У меня есть несколько больших программ на C, и я хотел бы знать, когда я собираю эту программу, какие заголовочные файлы на самом деле включены...

Простейшим решением было бы напечатать предварительно обработанный код и посмотреть, но знаете ли вы, есть ли способ скомпилировать и одновременно показать, какие заголовочные файлы включены?

4 ответа

Решение

Используйте опцию -M для вывода зависимостей. Используйте -MD для генерации и компиляции. Используйте -MF для перенаправления в файл.

Также -MM позволяет игнорировать системный файл в списке зависимостей.

gcc ... -M  -MF <output_file>     # generate dependencies
gcc ... -MD -MF <output_file>     # compile and generate dependencies

Ты можешь использовать -MD вариант - см. man gcc для деталей.

Увеличить детализацию gcc, а затем запустить ее через собственную созданную программу-фильтр?

Используйте gcc -M или gcc -MM. Отрегулируйте вывод с помощью sed, если хотите. Если вы используете GNU make (и вам следует), вы можете заключить это в одну команду tidy.

Другие вопросы по тегам