Как вывести список всех включенных заголовочных файлов с помощью файла c (желательно в Vim) - PullRequest
4 голосов
/ 02 апреля 2011

Есть ли способ просмотреть все файлы заголовков, включенные в файл c.

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

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

Ответы [ 4 ]

4 голосов
/ 02 апреля 2011

Но настоящая команда для этого -

:checkpath

В нем будут перечислены отсутствующие заголовки. Чтобы увидеть все заголовки (в дереве ссылок)

:checkpath!

Вы захотите узнать о значении настроек 'include', 'isfname' и 'path' в контексте этой проверки. Очевидно, что настройки по умолчанию будут работать нормально для исходников C / C ++. Многие плагины файловых типов поставляются с соответствующими определениями для работы с файлами других типов.

3 голосов
/ 02 апреля 2011

Обычная техника - использовать cpp:

$ cpp -M file.c
0 голосов
/ 15 сентября 2015

Я обнаружил, что полезным переключателем CL является этот переключатель:

/ShowIncludes

Он заставляет CL выводить в stdout список с несколькими отступами, как показано ниже.Это может дать вам иерархию, из которой они включены в заголовочный файл:

Note: including file: C:\Program Files\Microsoft SDKs\Windows\v7.1\INCLUDE\windows.h
Note: including file:  C:\Program Files\Microsoft SDKs\Windows\v7.1\INCLUDE\sdkddkver.h
Note: including file:  C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\excpt.h
Note: including file:   C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\crtdefs.h
Note: including file:    C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\sal.h
Note: including file:     c:\program files (x86)\microsoft visual studio 10.0\vc\include\codeanalysis\sourceannotations.h
Note: including file:    C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\vadefs.h
Note: including file:  C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\stdarg.h
Note: including file:  C:\Program Files\Microsoft SDKs\Windows\v7.1\INCLUDE\windef.h
Note: including file:   C:\Program Files\Microsoft SDKs\Windows\v7.1\INCLUDE\winnt.h
Note: including file:    C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\ctype.h
Note: including file:     C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\crtdefs.h
Note: including file:    C:\Program Files\Microsoft SDKs\Windows\v7.1\INCLUDE\specstrings.h
Note: including file:     c:\program files\microsoft sdks\windows\v7.1\include\sal_supp.h
Note: including file:     c:\program files\microsoft sdks\windows\v7.1\include\specstrings_supp.h
Note: including file:     C:\Program Files\Microsoft SDKs\Windows\v7.1\INCLUDE\specstrings_strict.h
Note: including file:      C:\Program Files\Microsoft SDKs\Windows\v7.1\INCLUDE\specstrings_undef.h
Note: including file:     C:\Program Files\Microsoft SDKs\Windows\v7.1\INCLUDE\driverspecs.h
Note: including file:      c:\program files\microsoft sdks\windows\v7.1\include\sdv_driverspecs.h
Note: including file:    C:\Program Files\Microsoft SDKs\Windows\v7.1\INCLUDE\kernelspecs.h
Note: including file:    C:\Program Files\Microsoft SDKs\Windows\v7.1\INCLUDE\basetsd.h
Note: including file:    C:\Program Files\Microsoft SDKs\Windows\v7.1\INCLUDE\guiddef.h
Note: including file:     C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\string.h
Note: including file:      C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\crtdefs.h
... and the list continues
0 голосов
/ 24 ноября 2012

Вы можете использовать -E -H с CC.Аналогичные параметры должны существовать для gcc.

...