Android NDKではまった

AndroidでネイティブライブラリをビルドするためにWindows上でNDKを使ったときの話です。
あらかじめcygwinは入れてあるので、
NDKのダウンロードサイトから”android-ndk-r*-windows-x86*.zip”をダウンロードして
“C:\Program Files\Android”フォルダに展開し、
NDKのフォルダ(“ndk-build”コマンドがあるフォルダ)にPathをとおして
ネイティブライブラリのあるフォルダ上で

$ ndk-build

を実行してみました。結果は以下のとおりです。

dirname: extra operand `Files/Android/android-ndk-r9/ndk-build'
Try `dirname --help' for more information.
ERROR: You are using a non-Cygwin compatible Make program.
Currently using: C:/usr/cygwin/bin/make

To solve the issue, follow these steps:

1. Ensure that the Cygwin 'make' package is installed.
   NOTE: You will need GNU Make 3.81 or later!

2. Define the GNUMAKE environment variable to point to it, as in:

     export GNUMAKE=/usr/bin/make

3. Call 'ndk-build' again.

cygwinのmakeについては以前痛い目にあっているのでバージョンに関しては敏感になっているのですが、
一応

$ make --version

でバージョンが3.81なことを確認し、

$ which make

で”make”が”/usr/bin/”ディレクトリにあることを確認した上で

$ export GNUMAKE=/usr/bin/make
$ ndk-build

としてみましたが結果は同じです。
で、いろいろ調べたところNDKを”C:\Program Files\Android”に置いたこと自体に
問題があることがわかりました。
フルパスに空白が含まれているのがまずいのです。
って、さっきのエラーの一行目から一瞬にして気付くことはできたはずなのですが。

よくわからないソフトウェアを扱うときって、
最終的にソースやMakefileを読み込むところまで覚悟して始めたりするものですが、
実績のあるものが動かなかったときって結構パニックになります。

広告