Я видел другие подобные вопросы, но они, похоже, не решают мою проблему. Я пытаюсь построить проект 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 сложна :(.
Во-первых, 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))
вместо.
Других решений пока нет …