私は以下のようなプロジェクト構造を持っています。私がしたいのは、SQLiteソースを使って静的ライブラリを構築することですが、何らかの理由でndk-buildを実行すると、他の場所にAndroid.mkファイルを含むように、他のソースも構築されます。静的ライブラリのndk-build - なぜ他のファイルをビルドしていますか?
jni/SQLite
jni/SQLite/Android.mk (the only .mk file that I want to build)
jni/TT
jni/Application.mk
jni/Android.mk (for building everything such as SDL2)
TTはSQLiteの、SDL2や他のソースなど、クロスプラットフォームのソースファイルの数が含まれて/仕事/ TTへのシンボリックリンクです。ここで
/work/TT
/work/TT/SQLite
/work/TT/SQLite/sqlite3.c
/work/TT/SDL2
..
はなぜ他のファイルが構築されている
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
TT_PATH := /work/TT
SRC_SQLITE := $(TT_PATH)/SQLite/sqlite3.c
LOCAL_C_INCLUDES += $(NDK_APP_PROJECT_PATH)/jni
LOCAL_MODULE := SQLite
LOCAL_SRC_FILES := $(SRC_SQLITE)
include $(BUILD_STATIC_LIBRARY)
/Android.mk
/SQLiteのJNIのですか? SQLiteだけをビルドするには何が必要ですか?私はsqlite3.cを見ることを期待私はNDKビルド(上記Android.mkの内容と同じフォルダ)を実行 JNI/SQLiteの
:私は次のフォルダにしています。コマンドプロンプトで
コンパイルされた唯一のファイルです。しかし、いや、私は再びNDKビルドを実行する場合、私はこれを参照してください。一度すべてのファイルがコンパイルされている
...建設さSDL2プロジェクトファイルのすべてを参照してください。
MacbookPro:SQLite admin$ ndk-build
[armeabi-v7a] Install : libSDL2.so => libs/armeabi-v7a/libSDL2.so
[armeabi-v7a] Install : libmain.so => libs/armeabi-v7a/libmain.so
をこれは明らかに、モジュールのSDL2を示しており、メインビルド..しかし、なぜですか?
ndk-build -f Android.mk
/建て検索さ私の唯一の希望Android.mkを構築する代わりに、自動的に私のJNIフォルダを持つ..to:
はおそらく、私は使用することが出来るのですか?私は次のエラーを取得するが、一つの特定のAndroid.mkを実行しようとしているかのように、少なくともそれが見えることやる次のように
MacbookPro:SQLite admin$ ndk-build -f Android.mk
Android NDK: Trying to define local module 'SQLite' in Android.mk.
Android NDK: But this module was already defined by /Work/TT/android-TT/app/src/main/jni/SQLite/Android.mk.
/Android/android-ndk-r9d/build/core/build-module.mk:34: *** Android NDK: Aborting. . Stop.
私Application.mkがあるが、これではありません
# Uncomment this if you're using STL in your project
# See CPLUSPLUS-SUPPORT.html in the NDK documentation for more information
APP_STL := gnustl_static
APP_PLATFORM := android-14
APP_ABI := armeabi-v7a
UPDATE::私はNDK-ビルドを実行SQLiteのフォルダに存在し、これは、JNI/Application.mkである私が試した:
ndk-build -d -f Android.mk
..そして、デバッグ出力は、SDL2/Android.mkと他の.mkファイルがまだ呼び出されていることを示しています。この再帰的な動作を止めて、現在のフォルダにAndroid.mkしか作成しないようにするにはどうすればよいですか?
これは私が見デバッグ出力の抜粋です:
Reading makefile `/Work/TT/android-TT/app/src/main/jni/SDL/Android.mk' (search path) (no ~ expansion)...
Reading makefile `/Work/TT/android-TT/app/src/main/obj/local/armeabi-v7a/objs/main/SQLite/sqlite3.o.d' (search path) (don't care) (no ~ expansion)...
あなたのapplication.mkは何ですか? –
引数をndk-buildに渡さないとアンドロイドプロジェクトを囲み、 'jni'ディレクトリに直接あるmkファイルを使用します。 –
@RobertWang要求通りにApplication.mkを添付しました。 – SparkyNZ