Android.mk

ndk-makefile.png

必要最低限のAndroid.mk

LOCAL_PATH := $(call my-dir)#これはベースとするディレクトリの宣言となり、$(call my-dir)はAndroid.mkが置いてあるディレクトリで置換されます。(別ディレクトリにソースを置く場合等は変更する必要があります)
 
include $(CLEAR_VARS)
 
LOCAL_MODULE := native_globe#アプリケーションの名前 このAndroid.mkでビルドする対象のライブラリを宣言します。(最終的にはlibここで宣言した名前.soというファイルが作成されます。)
 
LOCAL_SRC_FILES := $(wildcard *.cpp) $(wildcard*.h)#ビルド対象となるソースを指定します。(複数ある場合はスペース区切りです)。
 
LOCAL_LDLIBS := --llog -lGLESv1_CM -lGLESv2#自身のライブラリにリンクするライブラリを指定します。
include $(BUILD_SHARED_LIBRARY)#これは共有ライブラリを結果として出力する設定になっています。今回は実行ファイルを出力したいため、"include $(BUILD_EXECUTABLE)"に置き換える指定にします。

LOCAL_LDLIBS

  • —llog
  • -landroid
  • -IEGL
  • -LGLESv2
  • -lGLESv1_CM

-LGLESv2と-lGLESv1_CMは共存させちゃいけないっぽい。

printGLString("Version",GL_VERSION);

で何が出力されるか見てみて。
GL2を使いたいのにGL1と出てきたなんてことはないか?
[[/code]]
  • $(wildcard *.cpp) $(wildcard*.h)はうまく効かない。ちゃんとファイル名をだらだらと書き連ねた方がよさそう。

Android.mkを変えたら

ndk-build cleanをして、(libs以下にあるものを消す)

プロジェクトフォルダ/obj/local/以下にあるファイルを消そう。

ndk-build clean all

でもいいかな
ndk-buildだけじゃそれらは消えないみたい。

エラー

unsupported source file extensions

LOCAL_SRC_FILESに.hや.hppを書くべきではない。
.hや.hppは別にかかなくてもいいかな。

サポートサイト Wikidot.com