GCC -M проблема генерации зависимостей - PullRequest
1 голос
/ 22 ноября 2011

Согласно документации GNU

Если имеется много включенных файлов, правило разбивается на несколько строк с использованием \ -newline.

После выполнения следующей команды, почему выходные данные из gcc -M не соответствуют ожидаемым?
Как убедиться, что каждая зависимость отображается в отдельной строке?Заранее спасибо за помощь.

gcc -Iinc/ -Isrc/ -M -MM src/BitSet.c

BitSet.o: src/BitSet.c \
 inc/BitSet.h inc/StdDefs.h

Я использую GCC 4.5.2 (MinGW) в Windows.

1 Ответ

2 голосов
/ 22 ноября 2011

Вы ожидаете, что что-то не так.

Если имеется много включенных файлов, правило разделяется на несколько строк с помощью \ -newline.

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

Т.е. ошибка ожидаемого вывода, а не наблюдаемого вывода.

Относительно вашего комментария (создание инструмента сборки изваш собственный, который использует вывод gcc -M для отслеживания зависимостей) ... вывод gcc -M предназначен для анализа make с использованием правил синтаксического анализа make.Если вы хотите использовать выходные данные самостоятельно, вам придется следовать тем же правилам синтаксического анализа, которые не так уж и сложны для начала.

...