【问题标题】:Android makefile can't find libs because of extra LOCAL_PATH in path由于路径中有额外的 LOCAL_PATH,Android makefile 找不到库
【发布时间】:2014-07-29 09:49:05
【问题描述】:

所以我一直在摸不着头脑:基本上,我有两个 Android makefile,一个在我的 jni 文件夹中,一个在另一个文件夹中,其中包含我的原生 c++ 代码。

事情是,对于下面的makefile,

LOCAL_PATH := $(call my-dir)

GENERATED_PATH := $(LOCAL_PATH)/../../generated/release/api/Android

############################  Includes ############################

#------------------------------------------------------------------ Assimp

LOCAL_MODULE := Assimp
LOCAL_EXPORT_C_INCLUDES := $(GENERATED_PATH)/assimp/include
LOCAL_SRC_FILES := $(GENERATED_PATH)/assimp/lib/libassimp.a

include $(PREBUILT_STATIC_LIBRARY)

# More Libraries included....
#....

我收到以下错误:

Android NDK: ERROR:jni/../../../appCommon/Android.mk:Assimp: LOCAL_SRC_FILES 指向丢失的文件

Android NDK:检查 jni/../../../appCommon/jni/../../../appCommon/../../generated/release/api/Android/assimp/ lib/libassimp.a 存在或其路径正确

让我烦恼的是,在 ndk 搜索库的路径中有两倍的 LOCAL_PATH。我已经阅读过一些类似的案例(例如使用notdir 宏),但找不到令人满意的解决方案。

如何正确(而不是手动)指定正确的目录?

【问题讨论】:

    标签: android android-ndk makefile


    【解决方案1】:

    原来问题出在PREBUILT_STATIC_LIBRARY脚本,它在以下路径中查找lib:$(LOCAL_PATH)/$(LOCAL_SRC_FILES)

    因此,一个简单的解决方法是为目录设置单独的变量,如下所示:

    GENERATED_PATH := ../../generated/release/api/Android
    GENERATED_INCLUDE_PATH := $(LOCAL_PATH)/$(GENERATED_PATH)
    

    然后像这样使用它们:

    LOCAL_MODULE := Assimp
    LOCAL_EXPORT_C_INCLUDES := $(GENERATED_INCLUDE_PATH)/assimp/include
    LOCAL_SRC_FILES := $(GENERATED_PATH)/assimp/lib/libassimp.a
    
    include $(PREBUILT_STATIC_LIBRARY)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-29
      • 1970-01-01
      • 2017-12-10
      • 1970-01-01
      • 2013-10-10
      • 1970-01-01
      • 2017-01-31
      • 2021-04-25
      相关资源
      最近更新 更多