0
我已經編譯我的NDK的C代碼就好了一個Android.mk文件:Android.mk將編譯.c的源代碼,但沒有的.cpp
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := galib
LOCAL_SRC_FILES := galib.c tables-lr35-contam.c tables-lr35-perf.c
LOCAL_CFLAGS := -DTARGET_ANDROID=1
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
include $(BUILD_SHARED_LIBRARY)
我想打電話給第一源galib.cpp而不是.c,因爲這是我在WPF環境中編譯它時需要的名稱。它實際上只是C代碼,但是爲了生成一個DLL,我必須命名它.cpp來正確處理__declspec(dllexport)。
然而,當我將其重命名galib.cpp並更改.mk文件的說法一致,並嘗試建立它的Android,我得到的錯誤:
$ ndk-build
make: *** No rule to make target `/cygdrive/c/apk/adev/android/etold/jni/galib.c',
...needed by `/cygdrive/c/apk/adev/android/etold/obj/local/armeabi/objs/galib/galib.o'. Stop.
,就像它仍然要求。 c文件出於某種原因。我還嘗試過「ndk-build -B」,以防萬一從.c版本中遺留下來的東西,但這會導致相同的錯誤。任何想法爲什麼?謝謝!
我認爲這會幫助你:: http://hashspeaks.wordpress.com/2010/01/27/android-mk-documentation/ –
http://developer.android.com/sdk/ndk/overview。 html –
我已經看過這個,它看起來像我所要做的只是重命名爲.cpp和LOCAL_SRC_FILES更改。但是我重讀了它,看到了LOCAL_CPP_EXTENSION,所以我試着明確地說擴展名是.cpp,但沒有幫助。正如示例所示,我嘗試了.cxx,現在我收到了「不受支持的源文件擴展名」錯誤。也許抵抗是徒勞的。 :-) –