Вот методика, которая находит все включаемые файлы, используя make
.
Это не навязчиво, поэтому вам не нужно вносить какие-либо изменения в файлы или даже на самом деле компилировать. Make сделает всю работу за вас.
make -d
запустит make и выдаст множество строк, описывающих внутреннюю обработку процесса make. Наиболее важным является учет зависимостей.
Анализируя выходные данные, легко найти зависимости и все другие файлы.
Вот командная строка Linux, которая получает отсортированный список каталогов, содержащих файлы включения:
make -d | awk '/Prerequisite/ { if(match($2,".(.*)(/)(.*\\.h)",m)) { c[m[1]]++ ; } } END {for(d in c) print "\"" d "\",";} ' | sort
В этом случае каталоги заключаются в кавычки и в конце добавляется запятая, поэтому выходной сигнал готов для включения в файл конфигурации кода Visual Studio (vscode) c_cpp_properties.json
Простые варианты могут создавать большой список включаемых зависимостей, например так:
make -d | awk '/Prerequisite/ { if(match($2,".(.*\\.h)",m)) { c[m[1]]++ ; } } END {for(d in c) print d ;} ' | sort
Это также должно работать с целями (например, make All
)