Пример hello-jni NDK — сбой сборки ndk

Я следую инструкциям на http://developer.android.com/sdk/ndk/overview.html для создания примера hello-jni, однако, когда я перехожу к шагу 2 для запуска

cd $NDK-ROOT/samples/hello-jni
$NDK-ROOT/ndk-build

в командной строке Cygwin я получаю следующие сообщения об ошибках:

/bin/sh: -c: line 0: unexpected EOF while looking for matching `''
/bin/sh: -c: line 1: syntax error: unexpected end of file
Android NDK: Host awk tool is outdated. Please define HOST_AWK to point to Gawk
or Nawk !

На моем компьютере с Windows установлены Cygwin 1.7.9, Gnu Make 3.8.2 и Gawk 3.1.8, а также Android NDK версии r5b. Я также установил переменную среды HOST_AWK, которая указывает на мою папку Gawk.

К сожалению, образец не может успешно работать без этого шага (если я запускаю hello-jni, я немедленно получаю исключение UnsatisfiedLinkError).

Ниже приведена часть файла init.mk на моей машине (находится в NDK_ROOT/build/core), которая создает эту ошибку:

# Location of all awk scripts we use
BUILD_AWK := $(NDK_ROOT)/build/awk

AWK_TEST := $(shell $(HOST_AWK) -f $(BUILD_AWK)/check-awk.awk)
$(call ndk_log,Host awk test returned: $(AWK_TEST))
ifneq ($(AWK_TEST),Pass)
$(call __ndk_info,Host awk tool is outdated. Please define HOST_AWK to point to Gawk or     Nawk !)
$(call __ndk_error,Aborting.)
endif

Спасибо за помощь


person lost_bits1110    schedule 10.05.2011    source источник
comment
попробуйте обновить свой инструмент awk. Кажется, устаревшая версия (возможно).   -  person JoxTraex    schedule 10.05.2011
comment
Была такая же проблема, stackoverflow.com/questions/8384213/ [1]: stackoverflow.com/questions/8384213/   -  person Santhosh Shettigar    schedule 11.12.2011
comment
Та же проблема с Cygwin - Awk 4.0.0   -  person tofutim    schedule 07.02.2012
comment
Проблема в этом случае заключается в том, что $(NDK_ROOT) дает нулевой результат, поскольку мой корень хранится в $NDK_ROOT (без скобок).   -  person tofutim    schedule 07.02.2012


Ответы (4)


Попробуйте обновить свой инструмент awk. Кажется, устаревшая версия (возможно). Также убедитесь, что корень NDK определен там, где у вас есть источник NDK, и убедитесь, что ваш инструмент awk находится в каталоге сборки вашего источника NDK.

NDK_ROOT

Попробуйте установить эту переменную среды там, где находится ваш корень NDK. Всякий раз, когда это определено (обычно вверху)

person JoxTraex    schedule 10.05.2011
comment
Инструмент awk, который у меня есть, — это Gawk версии 3.1.8, которая является последней версией. Это также версия, поставляемая с установкой Cygwin. Моя переменная среды NDK_ROOT указывает на расположение папки android-ndk-r5b, а переменная среды HOST_AWK указывает на gawk.exe, но это произошло при установке Cygwin, так же как и в моей папке Cygwin\bin. - person lost_bits1110; 10.05.2011
comment
Должен ли я снова установить Gawk отдельно, чтобы поместить его в мою папку NDK_ROOT/build? В настоящее время NDK_ROOT/сборка содержит: awk/core/gmsl/tools/ - person lost_bits1110; 11.05.2011
comment
Я не уверен в деталях ... но я ожидаю, что все инструменты awk будут в этом каталоге. - person JoxTraex; 11.05.2011
comment
Я скопировал исполняемые файлы gawk в каталог NDK_ROOT/build/awk (который в настоящее время содержит только файлы .awk), и та же ошибка сохраняется. - person lost_bits1110; 11.05.2011
comment
Вы не забыли увидеть переменную NDK_ROOT там, где находится ВАШ набор инструментов ndk? - person JoxTraex; 11.05.2011
comment
Да, моя переменная среды NDK_ROOT указывает на мою папку android-ndk-r5b. - person lost_bits1110; 11.05.2011

Вместо HOST_AWK=gawk.exe просто сделайте HOST_AWK=gawk

person yincrash    schedule 17.05.2011
comment
Я только что обновил свою переменную среды, чтобы отразить это, к сожалению, я все еще получаю ту же ошибку. - person lost_bits1110; 17.05.2011

Оказывается, в моем пути HOST_AWK был апостроф, который вызывал проблему.

person lost_bits1110    schedule 06.07.2011

ссылка https://stackoverflow.com/q/8121153/411522

мой теперь работал нормально. что делать: просто переименовать готовый awk в ndk

person Gavin    schedule 24.11.2011