【问题标题】:Compiling native android library with multiple c files using ndk build errors * No rule to make target使用 ndk build 错误编译具有多个 c 文件的本机 android 库 * 没有规则来制作目标
【发布时间】:2016-06-20 01:04:08
【问题描述】:

我在将共享 C 库编译为 .so for android 时遇到问题。我已将所有 .c 和 .h 文件复制到 jni 文件夹中。我在下面发布了一个屏幕截图,以显示Android.mk 文件的内容以及文件夹层次结构。

下面是ndk-build在项目根文件夹中运行的输出NTRUMLS

[kenway@jackdaw NTRUMLS]$ ndk-build
make: *** No rule to make target '/media/bigdata/Android/Sdk/ndk-bundle/build/core/crypto_hash_sha512.c', needed by 'obj/local/arm64-v8a/objs/ntrumls/crypto_hash_sha512.o'.  Stop.

我检查了空格和错字。这是我的 Android.mk 的内容直接复制到下面。

include $(CLEAR_VARS)

LOCAL_ARM_MODE := arm
LOCAL_PATH := $(call my-dir)

LOCAL_MODULE := libntrumls
LOCAL_CFLAGS := -Werror
LOCAL_SRC_FILES := crypto_hash_sha512.c \
                crypto_stream.c \
                convert.c \
                randombytes.c \
                fastrandombytes.c \
                pack.c \
                pol.c \
                params.c \
                pqntrusign.c \
                shred.c

LOCAL_LDLIBS := -llog

include $(BUILD_SHARED_LIBRARY)

【问题讨论】:

    标签: android c compilation android-ndk


    【解决方案1】:

    移动

    LOCAL_PATH := $(call my-dir)
    

    成为 Android.mk 脚本的第一条语句。

    【讨论】:

    • 谢谢!我把它移到文件的顶部并编译了!
    【解决方案2】:

    尝试关注

    LOCAL_PATH := $(call my-dir)
    include $(CLEAR_VARS)
    
    LOCAL_ARM_MODE := arm
    
    
    LOCAL_MODULE := libntrumls
    LOCAL_CFLAGS := -Werror
    LOCAL_SRC_FILES := Main_M1_play.cpp
    
    LOCAL_LDLIBS := -llog
    
    include $(BUILD_SHARED_LIBRARY)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-10
      • 1970-01-01
      • 1970-01-01
      • 2014-04-23
      • 2015-03-02
      • 2011-09-08
      • 1970-01-01
      相关资源
      最近更新 更多