Невозможно использовать ndk-build на Cygwin

Я должен использовать NDK для клиентского проекта. Я использую Windows 7.

Я следовал инструкциям по установке. Я установил Cygwin 1.7.1.

В Cygwin bash я захожу в корневой каталог Android NDK.

Когда я вижу содержимое каталога с помощью команды $dir, я вижу все содержимое, включая ndk-build, но когда я пытаюсь использовать ndk-build, я получаю следующий результат:

$ndk-build bash: ndk-build: команда не найдена.

Не уверен, что я делаю неправильно.


person OceanBlue    schedule 25.01.2011    source источник
comment
@svens: Это сработало, спасибо! Если бы вы дали это в качестве ответа, я бы «принял» это. Похоже, я по крайней мере на шаг ближе, так как теперь появляется другая ошибка: Пожалуйста, установите пакет Cygwin make или определите переменную GNUMAKE, чтобы указать на него.   -  person OceanBlue    schedule 26.01.2011


Ответы (1)


Cygwin эмулирует среду GNU/Linux на вашем компьютере с Windows. Это означает, что вы работаете с «оболочкой», которая не совсем совпадает с командной строкой Windows.

Если вы наберете asdf.exe в командной строке Windows, она попытается найти asdf.exe в текущем каталоге. Если он может найти его, файл выполняется. Если он не сможет его найти, он просмотрит каждый каталог вашего %PATH% и повторит попытку.

Однако, если вы введете asdf в bash (существует несколько видов оболочек, Bourne Again SHell — одна из них), он не будет следить за ним в текущем каталоге. Вместо этого он попытается найти его в одном из ваших PATH каталогов. Не могу дать вам здесь никаких источников, но, насколько я знаю, это из соображений безопасности. Если вы хотите запустить файл, которого нет в вашем PATH, вы должны добавить к нему абсолютный или относительный путь. Вы можете использовать ./, он указывает на текущий каталог.

Вот почему вам нужно ввести ./ndk-build, потому что он находится в текущем каталоге, а не в вашем пути. Что-то вроде /path/to/ndk/ndk-build также будет работать, но вам придется набрать еще немного :).

(На самом деле это еще сложнее, если вы хотите запустить файл, вам нужны права на выполнение для него. Google поможет вам, если у вас возникнут проблемы с этим.)

person svens    schedule 25.01.2011
comment
Спасибо за подробное объяснение, это напоминает мне CLASSPATH в java, который не смотрит на текущий каталог, если вы специально не попросите об этом. проголосовать - person OceanBlue; 26.01.2011