Как вывести список файлов заголовка .hpp, когда они создаются с помощью CMake - PullRequest
0 голосов
/ 24 января 2019

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

Когда я компилирую свой проект сейчас, он только перечисляет (через stdout) создаваемые .cpp, но не какие-либо из файлов .hpp. Так как же я могу перечислить файлы .hpp по мере их создания? Я использую CMake 3.13, если это поможет.

1 Ответ

0 голосов
/ 24 января 2019

Ответ Linux:

Помните, что Cmake не компилируется, хотя вы можете сделать cmake --build ., это работает так же, как вызов make в папке, в которой вы запускали cmake ../.. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=DEBUG. Так что Cmake - это просто генератор сборки, а не настоящий строитель. Команда make также не собирается, она просто читает некоторые сценарии / текстовые файлы (для простоты назовем их так), и в них есть правила для вызова нужного компилятора (GCC, CLANG и т. Д.). Таким образом, заголовки отображаются на этапе предварительной компиляции компилятором. Это обрабатывается компилятором. Поэтому, если вы хотите, чтобы все заголовки были включены, вы должны указать компилятору показать их вам. Попробуйте добавить -M в качестве флага компилятора (я предполагал, что вы компилируете с GCC)

Вместо вывода результата предварительной обработки выведите правило подходит для описания характеристик основного исходного файла. Препроцессор выводит одно правило make, содержащее имя объектного файла для этого исходного файла, двоеточие и имена всех включенных файлы, в том числе поступающие из командной строки -include или -imacros опции.

Меньший выходной флаг будет -H

-H Печать имени каждого используемого файла заголовка в дополнение к другим обычным действиям. Каждое имя имеет отступ, чтобы показать, насколько глубоко Стек #include это. Предварительно скомпилированные заголовочные файлы также печатаются, даже если они признаны недействительными; неверный предварительно скомпилированный заголовок файл распечатан с "... x" и действительный с "...!".

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