2011-09-14 9 views
0

を.CPP .Cソースをコンパイルしなくなります。Android.mk私はうまく私のNDKのCコードをコンパイルAndroid.mkファイル持って

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を呼び出すしたいと思いますこれはWPF環境でコンパイルするときに必要な名前なので、.cの代わりに.cです。これは本当にCコードですが、DLLを作成するには、__declspec(dllexport)の処理を適切に行うために.cppという名前を付ける必要があります。私はそれをgalib.cpp名前を変更し、同じことを言うとAndroidのためにそれを構築しようとするの.mkファイルを変更したときに

はしかし、私はエラーを取得する:

$ 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ビルドから何か残っているものもありますが、同じエラーが発生します。どんな考え?ありがとう!

+0

これはあなたに役立つと思います:: http://hashspeaks.wordpress.com/2010/01/27/android-mk-documentation/ –

+0

http://developer.android.com/sdk/ndk/overview。 html –

+0

私はすでにこれを見ていたので、.cppとLOCAL_SRC_FILESの名前を変更するだけでした。しかし、私はそれを再度読んで、LOCAL_CPP_EXTENSIONについて見たので、拡張子が.cppであり、それが助けにならないと明示的に言ってみました。私は例として示すように.cxxを試しましたが、 "サポートされていないソースファイルの拡張子"エラーが表示されます。多分抵抗は無益です。 :-) –

答えて

4

私はあなたが長いこと前に尋ねたことを知っています。しかし、とにかく - 私のような他の人のために:

私はこの問題に今も取り組んでいます。 何らかの理由で、ソースリストをLOCAL_SRC_FILESに変更してもクリーンビルドではジョブが実行されません。 プロジェクト内で\obj\local\armeabi\objs\に移動し、.oファイルを手動でクリーニングする必要がありました。

その後、それはうまくコンパイルされました。

関連する問題