Команда Android ndk-build, возвращающая ‘целевой шаблон, не содержит’% ‘

Я видел другие подобные вопросы, но они, похоже, не решают мою проблему. Я пытаюсь построить проект C ++ / Android на Windows впервые, и у меня есть несколько вопросов:

1) Документы Android NDK говорят, что Cygwin требуется, некоторые люди в Интернете говорят, что это не так. Я пробовал оба. Но я получаю много ошибок при сборке нашего проекта с использованием ndk-build как в cmd.exe, так и в окне cygwin. На Cygwin это говорит

 *** target pattern contains no '%'.  Stop.

Я искал, что там может быть какой-то путь в стиле Windows в файлах make. Кто-то сказал использовать: $(shell cygpath -u $(path)) вместо $(path) … это не помогает.

2) Так как это большой проект, я хотел проверить, в каких местах идет путь в стиле Windows. Но даже простые команды @echo для вывода их значений не работают.

@echo $(path)

Некоторые в интернете сказали, что мы можем использовать этот стиль:

.PHONY: print_vals
print_vals:
<tab>@echo $(path)

но это тоже не работает. Разработка Android NDK на Windows сложна :(.

0

Решение

Во-первых, Cygwin не требуется для запуска ndk-build в Windows, только для запуска ndk-gdb, а также существует версия на python (ndk-gdb.py), которая в любом случае не требует Cygwin.

Во-вторых, в ваших файлах Android.mk должно быть что-то странное. Если вы не знаете, как работает GNU Make, вам следует ограничиться возможностями, описанными в документации NDK (например, $ NDK / docs / ANDROID-MK.html и $ NDK / docs / HOWTO.html)

Трудно точно сказать, почему вы видите это сообщение, но вполне вероятно, что вы используете абсолютные пути к файлам Windows в прямых определениях целей.

Наконец, вы не можете использовать echo для отладки Makefiles, используйте $(info path=$(path)) вместо.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]