作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经使用
在我的库创建中包含了一个预建库include $(PREBUILT_SHARED_LIBRARY)
并通过使用包含或不包含经过验证的天气库
$(modules-get-list)
当我尝试在预构建库中包含一个头文件时,我遇到了找不到头文件的错误。下面是我确切的 Android.mk 文件
LOCAL_PATH := $(call my-dir)
# import prebuilt-library
include $(CLEAR_VARS)
LOCAL_MODULE := prebuilt-library
LOCAL_SRC_FILES := ../../../target/dependency/libs/$(TARGET_ARCH_ABI)/libprebuilt.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_SHARED_LIBRARY)
# building provider interface library for communication
include $(CLEAR_VARS)
LOCAL_MODULE := library-interface
LOCAL_SRC_FILES := LibraryComminicator.cpp
LOCAL_SHARED_LIBRARIES := prebuilt-library
include $(BUILD_SHARED_LIBRARY)
$(warning Existing modules: "$(modules-get-list)")
# Include the Android Maven plugin generated makefile
# Important: Must be the last import in order for Android Maven Plugins paths to work
include $(ANDROID_MAVEN_PLUGIN_MAKEFILE)
最佳答案
试试下面的 Android.mk:
LOCAL_PATH := $(call my-dir)
EXT_LIB_ROOT := $(LOCAL_PATH)/../../../target/dependency # or whatever
# building provider interface library for communication
include $(CLEAR_VARS)
LOCAL_MODULE := library-interface
LOCAL_SRC_FILES := LibraryComminicator.cpp
LOCAL_SHARED_LIBRARIES := prebuilt-library
include $(BUILD_SHARED_LIBRARY)
# import prebuilt-library
LOCAL_PATH := $(EXT_LIB_ROOT)
include $(CLEAR_VARS)
LOCAL_MODULE := prebuilt-library
LOCAL_SRC_FILES := libs/$(TARGET_ARCH_ABI)/libprebuilt.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_SHARED_LIBRARY)
$(warning Existing modules: "$(modules-get-list)")
基本规则是:xxx_INCLUDE_FILES 应该相对于'current dir',而LOCAL_SRC_FILES 相对于$(LOCAL_PATH),而不是'current dir'。对于 NDK,“当前目录”通常是 $(LOCAL_PATH)/..
但这可能会改变,特别是如果链接了 Android.mk 文件,即一个包含另一个。
对于 PREBUILT_SHARED_LIBRARY 模块,您确实不需要 LOCAL_PATH,但我希望 LOCAL_SRC_FILES 尽可能短。
关于c++ - 包括来自预建库 Android.mk 的头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46531663/
我是一名优秀的程序员,十分优秀!