使用 NDK 编译原生 C++ activity
Compile C++ native activity with NDK
我基于 NDK 中的“native-activity”项目创建了 Androidnative activity 项目。在这个项目中,android_main
函数在 main.c 文件中实现,并且编译和 运行 没有任何问题。
现在我想在此文件中实现一些 C++ 例程并为此执行此操作,作为第一步,我将 main.c 文件更改为 main.cpp 并将 Android.mk 中的 LOCAL_SRC_FILES
条目更改为 main.cpp
。
此更改后,我在编译时遇到以下错误:
make.exe: *** No rule to make target `jni/main.c', needed by `obj/local/arm64-v8a/objs/native-activity/main.o'. Stop.
此项目中的 Android.mk 文件也包含以下条目:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := native-activity
LOCAL_SRC_FILES := main.cpp
LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv1_CM -lGLESv2
LOCAL_STATIC_LIBRARIES := android_native_app_glue
include $(BUILD_SHARED_LIBRARY)
$(call import-module,android/native_app_glue)
此错误的可能原因是什么?
从工作区中删除您的 obj 目录并重建。有时 eclipse clean 不工作,无法删除 obj 文件。
我基于 NDK 中的“native-activity”项目创建了 Androidnative activity 项目。在这个项目中,android_main
函数在 main.c 文件中实现,并且编译和 运行 没有任何问题。
现在我想在此文件中实现一些 C++ 例程并为此执行此操作,作为第一步,我将 main.c 文件更改为 main.cpp 并将 Android.mk 中的 LOCAL_SRC_FILES
条目更改为 main.cpp
。
此更改后,我在编译时遇到以下错误:
make.exe: *** No rule to make target `jni/main.c', needed by `obj/local/arm64-v8a/objs/native-activity/main.o'. Stop.
此项目中的 Android.mk 文件也包含以下条目:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := native-activity
LOCAL_SRC_FILES := main.cpp
LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv1_CM -lGLESv2
LOCAL_STATIC_LIBRARIES := android_native_app_glue
include $(BUILD_SHARED_LIBRARY)
$(call import-module,android/native_app_glue)
此错误的可能原因是什么?
从工作区中删除您的 obj 目录并重建。有时 eclipse clean 不工作,无法删除 obj 文件。