次の場所にあるチュートリアルに従おうとしています
http://developer.samsung.com/android/technical-docs/Porting-and-using-LAME-MP3-on-Android-with-JNI
その要点は、JNIでLAMEMP3エンコーダーを使用できるようにすることです。
チュートリアルに記載されている各手順に従いました。私のプロジェクトはにあります
C:\workspace\
'LAME_Test'と呼ばれます。チュートリアルの「 CompilationwithNDK 」というラベルの付いたセクションに従って、この投稿の下に含まれている「Android.mk」というmakefileを作成しました。
64ビットマシンでWindows7を実行しています。CygwinとNDKをインストールしていて、自分のセットアップが作業中の別のプロジェクトで機能することをテストしました。しかし、私が行くとき
/cygdrive/c/workspace/LAME_Test/jni
Cygwinで、次のコマンドを発行します
/cygdrive/c/Android/android-ndk-r8b/ndk-build
NDKが次の場所にある場合
C:\Android\android-ndk-r8b
コンパイルはこれらのような警告の束を吐き出します
warning: incompatible implicit declaration of built-in function 'memset' [enabled by default]
この投稿の下部に警告の小さな断片を同封しています(警告のリストは非常に大きく、付加価値ではなく、混乱を招く可能性があるため)。
これらの警告を解決し、きれいでクリーンなコンパイルを行うための巧妙な方法があるかどうか疑問に思っていました。
PS:上記のリンク(LAME4Android)で、サンプルプロジェクトをビルドして実行できたことを追加します。これには、ネイティブコードのコンパイルが必要でした。したがって、すべての警告にもかかわらず、プロジェクトは実際には正常にビルドされているように見えます。当初は警告で壊れたと思っていました。ただし、警告を修正する方法があれば、それは確かに素晴らしいことです。
Android.mkファイルの内容
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libmp3lame
LOCAL_SRC_FILES := \
./libmp3lame/bitstream.c \
./libmp3lame/encoder.c \
./libmp3lame/fft.c \
./libmp3lame/gain_analysis.c \
./libmp3lame/id3tag.c \
./libmp3lame/lame.c \
./libmp3lame/mpglib_interface.c \
./libmp3lame/newmdct.c \
./libmp3lame/presets.c \
./libmp3lame/psymodel.c \
./libmp3lame/quantize.c \
./libmp3lame/quantize_pvt.c \
./libmp3lame/reservoir.c \
./libmp3lame/set_get.c \
./libmp3lame/tables.c \
./libmp3lame/takehiro.c \
./libmp3lame/util.c \
./libmp3lame/vbrquantize.c \
./libmp3lame/VbrTag.c \
./libmp3lame/version.c
LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)
組み込み関数警告の互換性のない暗黙の宣言のログ
$ /cygdrive/c/Android/android-ndk-r8b/ndk-build
Cygwin : Generating dependency file converter script
Compile thumb : mp3lame <= bitstream.c
Compile thumb : mp3lame <= encoder.c
C:/workspace/LAME_Test/jni/./libmp3lame/encoder.c: In function 'lame_encode_frame_init':
C:/workspace/LAME_Test/jni/./libmp3lame/encoder.c:202:9: warning: incompatible implicit declaration of built-in function 'memset' [enabled by default]
C:/workspace/LAME_Test/jni/./libmp3lame/encoder.c: In function 'lame_encode_mp3_frame':
C:/workspace/LAME_Test/jni/./libmp3lame/encoder.c:471:17: warning: incompatible implicit declaration of built-in function 'bcopy' [enabled by default]
Compile thumb : mp3lame <= fft.c
Compile thumb : mp3lame <= gain_analysis.c
and so on...