我在Android NDK环境中编译了* .cpp文件。 但是,我看到了这个混乱。
dohyeon@ubuntu:/opt/android-ndk-r9d/jni$ ../ndk-build
[armeabi] Compile++ thumb: CPPTETRIS <= main.cpp
/opt/android-ndk-r9d/jni/main.cpp:3:20: fatal error: iostream: No such file or directory
compilation terminated.
make: *** [/opt/android-ndk-r9d/obj/local/armeabi/objs/CPPTETRIS/main.o] Error 1
dohyeon@ubuntu:/opt/android-ndk-r9d/jni$
我的c ++文件名是main.cpp和plane.cpp。
我的Andorid.mk文件
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_LDLIBS := -llog
APP_STL := gnustl_static
APP_STL := stlport_static
include $(CLEAR_VARS)
LOCAL_MODULE := CPPTETRIS
LOCAL_SRC_FILES := main.cpp plane.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include-all
include $(BUILD_EXECUTABLE)
我想知道为什么这样做。 请帮帮我。
答案 0 :(得分:3)
在我的情况下,APP_STL定义应该在./jni/ Application.mk 文件中,而不是在Android.mk文件中。
答案 1 :(得分:-1)
try this code..
static {
System.loadLibrary("CPPTETRIS");
}
将以上行添加到oncreate方法上面的活动..
followed by your jni in android.mk file.. and also add android tools add nativetools.
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
APP_OPTIM := debug
ndk-build APP_ABI=x86 NDK_DEBUG=1
LOCAL_MODULE := CPPTETRIS
LOCAL_CFLAGS = -DFIXED_POINT -DUSE_KISS_FFT -DEXPORT="" -UHAVE_CONFIG_H
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
LOCAL_SRC_FILES := \
./libspeex/bits.c \
./yourcppfilename.c
include $(BUILD_SHARED_LIBRARY)