Це makefile
створить повідомлення про помилку "відсутній роздільник":
all
@echo NDK_PROJECT_PATH=$(NDK_PROJECT_PATH)
done:
@echo "All done"
Перед вкладкою є @echo "All done"
(хоча done:
правило і дії в основному зайві), але не перед цим @echo PATH=$(PATH)
.
Проблема полягає в тому, що у лінії, що починається, all
повинна бути або двокрапка, :
або рівна, =
що вказує на те, що це цільова лінія або макро-лінія, і вона не має жодної, тому роздільник відсутній.
Дія, що перегукується зі значенням змінної, має бути пов’язана з ціллю, можливо, манекеном або PHONEY-ціллю. І ця цільова лінія повинна мати двокрапку на ній. Якщо у прикладі ви додасте :
після, а провідні пробіли в наступному рядку замініть на вкладку, це буде справно.all
makefile
Напевно у вас є аналогічна проблема біля рядка 102 в оригіналі makefile
. Якщо ви показали 5 непорожніх рядків без коментарів перед операціями ехо, які не виходять, ймовірно, вдасться закінчити діагностику. Однак, оскільки запитання було задано в травні 2013 року, малоймовірно, що зламаний makefile
все ще доступний зараз (серпень 2014 року), тому ця відповідь не може бути підтверджена формально. Його можна використовувати лише для ілюстрації правдоподібного способу виникнення проблеми.