Что является ведущим "@" в рецепте make-файла? - PullRequest
2 голосов
/ 03 января 2012

В make-файле, сгенерированном Eclipse, я вижу следующие правила:

./Cores/$(TARGET).core.3.srec : ../$(TARGET).core.3/Debug/$(TARGET).core.3.elf
        @mkdir -p ./Cores/
        @e-objcopy --srec-forceS3 --output-target srec "$<" "$@".temp
        @echo Creating srec file for CoreID\<0x826\>
        @head --lines=1 "$@".temp  | sed 's/0000/0826/' > "$@"
        @tail --lines=+2 "$@".temp >> "$@"

Какова цель " @ " в начале строк рецепта?

Чтение руководства пользователя GNU Make Я не смог найти ссылку на это использование @.Затем я предположил, что он фактически передается в оболочку как есть.

Итак, читая руководство по BASH, единственное место, которое я мог бы связать с этим использованием, это подстановка команд, когда установлена ​​опция extglob.Однако попытка сделать это в командной строке вызвала ошибку.

Ответы [ 2 ]

4 голосов
/ 03 января 2012

Префикс @ заставляет команду make выполнить команду без вывода сообщений.См. этот раздел руководства по GNU make .

2 голосов
/ 03 января 2012

@ подавляет эхо-команду при запуске рецепта, см. https://stackoverflow.com/a/867093/60462.

...