У посібнику з GNU Makefile згадуються ці префікси.
Якщо надається .ONESHELL, то лише перший рядок рецепту перевірятиметься на особливі символи префікса ("@", "-" та "+").
Що роблять ці префікси та де вони згадуються?
У посібнику з GNU Makefile згадуються ці префікси.
Якщо надається .ONESHELL, то лише перший рядок рецепту перевірятиметься на особливі символи префікса ("@", "-" та "+").
Що роблять ці префікси та де вони згадуються?
Відповіді:
Вони контролюють поведінку make для тегів командних рядків:
@ пригнічує нормальне «відлуння» команди, яка виконується.
- означає ігнорувати стан виходу команди, яка виконується (як правило, ненульовий статус виходу зупинить цю частину збірки).
+означає 'виконати цю команду під make -n' (або 'make -t' або 'make -q'), коли команди зазвичай не виконуються. Дивіться також специфікацію POSIX для, makeа також § 9.3 посібника GNU Make.
+Запис являє собою (POSIX-стандартизовані) узагальнення де факто (не стандартизовані) механізму , за допомогою якого командного рядка , що містить ${MAKE}або $(MAKE)виконується під make -n.
( @обговорюється в §5.2 посібника з виготовлення GNU; -описано в § 5.5 ; в пункті 5.7.1 згадується використання +.)
@не дозволяє командному рядку відлунювати до консолі. Ви можете зробити це в усьому світі за допомогою -sабо--keep-silent
-повідомляє make продовжувати, навіть якщо команда з якоїсь причини відмовиться. Ви можете зробити це в усьому світі за допомогою -iпрапора (або --ignore-errors).
+Я не був знайомим, перш ніж ти запитав. Наскільки я можу сказати, що зводить на немає ефект -n, -tі -q, всі з яких в основному говорять зробити насправді не запускати команди. Таким чином, лінія з +фронтом хотіла б пробігти все одно.
Якщо ви читаєте офіційний посібник з Gnu Make, всі вони згадуються у розділі 5 . У моєму старовинному примірнику посібника, який був розділом про "команди", але термін du jour зараз, здається, "рецепти".