GCC создает зависимости для сгенерированных заголовочных файлов в правильном каталоге - PullRequest
0 голосов
/ 12 июня 2018

Я использую GCC для создания файлов зависимостей из файлов заголовков, хранящихся в определенном каталоге.Вот мой рецепт:

gcc -MM -MG -MT obj/$*.o -MP -MF dep/$*.Td -I include $<

Один из этих заголовочных файлов создается (с Bison 3.0.5), поэтому он может не существовать.Поэтому я использую опцию -MG, как показано выше, но она генерирует зависимость без каталога.Как настроить make или GCC для добавления каталога включения к сгенерированному заголовку?

Заранее спасибо

dordow

1 Ответ

0 голосов
/ 15 июня 2018

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

Инструмент сборки cook поставляется с программой, c_incl,который сканирует исходные файлы C на наличие директив #include и может вести себя так, как вы хотите, с помощью команды, подобной c_incl -No_Cache -Absent_System_Mention -Iinclude -C.Но этот инструмент довольно неясен.

Возможно, вместо этого лучше использовать немного менее темную функцию make GNU: предварительные условия только для заказа, как описано в Типы предпосылок .Вы бы перечислили сгенерированные заголовочные файлы (или другие выходные файлы Bison) как обязательные предварительные условия для всех правил, которые компилируют файлы C, так, чтобы они генерировались рано при первой сборке, но впоследствии не вызывали ненужных повторных сборок.При таком подходе вам не нужно создавать зависимости от файлов, которые еще не существуют.

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