У меня есть модуль в проекте C с кучей больших файлов источника и заголовка. Они включают в себя множество внешних файлов заголовков, из libc и других модулей одного и того же проекта. Я хотел бы собрать список идентификаторов фактически, используемый из этих внешних файлов заголовков. Не только символы, но и все внешние определения типов, встроенные функции, макросы и т. Д.Как перечислить внешние идентификаторы в gcc?
Я хочу скомпилировать список, чтобы узнать, какие внешние зависимости у него есть, поэтому я могу видеть, что именно нужно портировать/перезаписать/выбросить если я хочу переместить этот модуль в совершенно другой проект. В этом конкретном случае меня не интересуют зависимости libc, а скорее от других модулей одного и того же проекта.
Ближайшей вещь, которую я получил, это временно удалить включают директивы, как это:
sed -i s/"#include <.*>"//g *.c
sed -i s/"#include <.*>"//g *.h
Затем компилировать файлы с -Wno-неиспользованным, так что я могу видеть сообщения об ошибках из-за недостающие заголовки , Но он все еще далек от легко читаемого списка внешних идентификаторов.
Почему вы так сильно заботитесь об используемых идентификаторах? Какова точная мотивация вашего вопроса? Пожалуйста, ** отредактируйте свой вопрос **, чтобы улучшить его! –
Даже с редактированием я до сих пор не понимаю вашу мотивацию. Как только вы используете какую-либо внешнюю библиотеку, вы, вероятно, не используете все имена в ней ... –
Точно, я далек от использования всех идентификаторов из внешних библиотек, я просто хочу знать, что именно используется из этих внешних источников , Поскольку это все еще довольно большой фрагмент кода с большим количеством ссылок на внешний код, и вместо того, чтобы проходить его по очереди и собирать список используемых типов/функций/макросов, я хочу что-то более автоматическое. Это помогло бы мне планировать и готовиться к обмену на другую внешнюю библиотеку, которая (насколько я вижу сейчас) имеет то, что использует этот код сейчас. –