所以我正在开发Android Studio 2.2.2中的NDK示例.该项目使用clapack(一个数学库),它还有一个与clapack文件夹相同级别的testclapack.cpp.Android.mk文件也位于同一目录中.
Android.mk文件的内容是:
LOCAL_PATH:= $(call my-dir)
export MAINDIR:= $(LOCAL_PATH)
include $(CLEAR_VARS)
include $(MAINDIR)/clapack/Android.mk
LOCAL_PATH := $(MAINDIR)
include $(CLEAR_VARS)
LOCAL_MODULE:= lapack
LOCAL_SHORT_COMMANDS := true
LOCAL_STATIC_LIBRARIES := tmglib clapack blas f2c
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES)
LOCAL_EXPORT_LDLIBS := $(LOCAL_LDLIBS)
include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE:= testlapack
LOCAL_SRC_FILES:= testclapack.cpp
LOCAL_STATIC_LIBRARIES := lapack
include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)
但是,Sync Gradle会导致错误:
Gradle sync失败:GNUMAKE:在编译步骤中只需要一个源文件:com.android.build.gradle.external.gnumake.CommandClassifier$NativeCompilerBuildTool@6fd7d241但收到:D:/ SDK/android/ndk-bundle/build //. ./platforms/android-19/arch-arm/usr/include E:/test/lapack/app/src/main/jni/testclapack.cpp
我认为它与Android.mk有关,因为如果我删除了testlapack的部分,那么gradle sync就可以了.
因为我需要在testclapack.cpp中调用函数,所以我需要一些关于如何将它们编译在一起的帮助.