さて、私はstackoverflowで4つの同様の質問を見てきました(this、this、thisおよびthis)。そこで与えられた答えを試してみました。1つの答えがうまくいったと言わざるを得ませんが、ドキュメントにはその方法を使用しないように明確に記載されています。だからここで私は尋ねます..
私のプロジェクト設定
- Mac OS X Mountain Lion 10.8.2、Eclipse Juno、gcc 4.2.1、GNU Make 3.8.1 で動作。
- 私のプロジェクトは、NDK を学習するためのテスト プロジェクトであり、API 16 をターゲットとし、API 8 以降をサポートする予定です。
- 私のプロジェクトは path にあります
~/Desktop/PROJECT/ANDROID/WORKSPACE/NDKResearch
。 - 私のNDKパスは
~/Documents/ANDROID/android_ndk_r8a
パス情報がどのように役立つかわかりません。しかし、私は常に bash で正しいパスを指定する際に問題がありました。だからここに投稿するだけです。
私がやった事?
NDKResearch プロジェクトにAndroid.mk
ファイルを追加しました (パス : $MY_PROJECT_PATH/jni/Android.mk
)
include $(CLEAR_VARS)
LOCAL_PATH:= $(call my-dir)
LOCAL_CPP_FEATURES += -fno-exceptions
LOCAL_SRC_FILES := \
Log.c \
Calculate.c
LOCAL_MODULE := libSoundTouch
include $(BUILD_SHARED_LIBRARY)
Application.mk
にファイルを追加しました$MY_PROJECT_PATH/jni/Application.mk
。
APP_PLATFORM := android-16
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_PROJECT_PATH := /Users/myusername/Desktop/PROJECTS/ANDROID/WORKSPACE/NDKResearch
そしてndk-build
、bashシェルで実行しました
## cd ~/Desktop/PROJECT/ANDROID/WORKSPACE/NDKResearch
## ~/Documents/ANDROID/android_ndk_r8a/ndk-build
タイトルに記載されているエラーが発生するだけです。
私の質問は何ですか?
上記のリンクされたスレッドから、ユーザー sege の答えはうまくいきました。他の誰もしませんでした。ただし、ndk のドキュメントには、この方法を使用しないことが明確に記載されています。ndk に同梱されている Overview.html ファイルから (オンライン バージョンが見つかりませんでした)。
Application.mk を使用するには、次の 2 つの方法があります。
$PROJECT/jni/Application.mk の下に配置すると、「ndk-build」スクリプトによって自動的に取得されます (詳細は後述)。
$NDK/apps//Application.mk の下に配置します。ここで、$NDK は NDK インストール パスを指します。その後、NDK ディレクトリから「make APP=」を起動します。
これは、Android NDK r4 より前のこのファイルの使用方法でした。互換性の理由から引き続きサポートされていますが、代わりに最初の方法を使用することを強くお勧めします。これは、はるかに簡単で、NDK インストール ツリーのディレクトリを変更または変更する必要がないためです。
私の質問は、最初の方法で成功した人はいますか? 機能しない理由はありますか?