Можно ли отследить зависимости компиляции Xcode C ++? - PullRequest
1 голос
/ 21 ноября 2010

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

Предыстория: я пытаюсь взять файл из «середины» проекта и «извлечь» только его и все его зависимости. Я могу выполнить эту проверку зависимостей вручную, но не вижу никакого очевидного способа сделать это автоматически в Xcode IDE.

Любая помощь приветствуется!

Ответы [ 2 ]

0 голосов
/ 21 ноября 2010

Я не знаю никакой поддержки в самом Xcode для этого.Тем не менее, это не так уж сложно сделать самостоятельно, особенно если вам интересен только один файл.

Вы можете добавить флаг -E к g++, чтобы он прекратился после предварительной обработки исходного файла.Предварительно обработанный исходный файл будет содержать комментарии с упоминанием всех файлов #include d.Эти строки могут быть извлечены с помощью простого вызова grep.

Xcode может сообщить вам полный список аргументов, которые он передает g++ при компиляции ваших файлов, если вы переходите к Build > Build Results, начните сборкуи щелкните овал while со строками в дальнем правом углу строки с надписью «Compile somefile.cpp ...»

Инструмент Doxygen имеет возможность отображать графики #includes из исходного и заголовочного файлов.Это хорошо, но, вероятно, немного тяжеловесно для того, что ты собираешься делать.

0 голосов
/ 21 ноября 2010

Какой компилятор вы используете? Если это MSVC ++, тогда посмотрите на использование опций: / P, / EP / P Когда вы используете g ++, попробуйте утилиту cpp.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...