【问题标题】:Android.mk wilcard extra 'jni' in path?Android.mk 在路径中通配额外的“jni”?
【发布时间】:2012-03-16 10:31:34
【问题描述】:

我尝试在这个答案的帮助下在 Android.mk 中使用通配符 https://stackoverflow.com/a/8459242/1039175
但是得到和错误:

ma​​ke: No rule to make target jni/jni/abyss_engine.c', needed byobj/local/armeabi/objs-debug/AbyssEngine/jni/abyss_engine.o' - 这个错误意味着没有找到源文件,这是很自然的,因为jni文件夹中没有jni子文件夹

路径中有一个额外的 jni,为什么?我的源文件只在 jni 文件夹中,没有任何子文件夹,如何解决?

我的 Android.mk

LOCAL_PATH := $(调用我的目录)
包括 $(CLEAR_VARS)
LOCAL_MODULE := AbyssEngine
LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.c)
abyss_engine.casset_manager.c jni_bridge.c shader_manager.c input_manager.c 工作正常
LOCAL_LDLIBS := -llog -lGLESv2
LOCAL_CFLAGS := -Werror
包括 $(BUILD_SHARED_LIBRARY)

【问题讨论】:

    标签: android makefile android-ndk


    【解决方案1】:

    感谢 android-ndk 组的 a1

    LOCAL_SRC_FILES=$(notdir $(wildcard $(LOCAL_PATH)/*.c)) 
    

    http://groups.google.com/group/android-ndk/browse_thread/thread/9d4251e0900a31e6/4b792fc207e454c2#4b792fc207e454c2 - 他的回复中有更多有用的信息

    【讨论】:

    • notdir 只删除 LOCAL_SRC_FILES 中的所有目录信息,但不会避免 ndk 在构建时附加 jni。我只得到文件“jni/hello.cpp”而不是“jni/../../mydir/hello.cpp”:(
    【解决方案2】:

    我使用External Tools编译文件,在我的项目中遇到了这个问题。

    我更改了工作目录路径,问题就解决了。

    步骤1: 设置 -> 工具 -> 外部工具 -> NDK -> 我的构建 -> 工作目录

    第二步:

    我的旧工作目录路径是:$ModuleFileDir$\src\main

    我改成:$ModuleFileDir$\src\main\jni

    它对我来说运行得很好!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-23
      • 1970-01-01
      • 2015-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多