我有一个ac源文件夹名称“clib”,在那里,我有一些示例文件,如1.h,1.c,2.h,2.c,3.c,3.h和外面那个文件夹我有4 .h,4.c,4_jni.h,4_jni.c
现在构建“.so”我创建了我的android.mk这样的东西
LOCAL_PATH := $(call my-dir) MY_PATH := $(LOCAL_PATH) include $(call all-subdir-makefiles) include $(CLEAR_VARS) LOCAL_PATH := $(MY_PATH) LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog LOCAL_MODULE := clib TIME_SYNC_PATH := ../../../clib LOCAL_SRC_FILES := \ 4_jni.c \ 4.c \ $(TIME_SYNC_PATH)/1.c \ $(TIME_SYNC_PATH)/2.c \ $(TIME_SYNC_PATH)/3.c \ $(BUILD_SHARED_LIBRARY)
这里4.h包含1.h文件
所以我真正的问题是,当我试图构建.so文件时,它给了我一个像这样的错误
致命错误:1.h:没有这样的文件或目录
如果我从4.h中移除1.h,一切都很好,但我有一个大的c库
具有相同类型的文件夹结构,并且一些.h文件包含很少的marcos定义….
所以请任何建议如何包括.h在不同的文件夹..
解决方法
您需要指定LOCAL_C_INCLUDES位置.
此变量保存头文件的位置,如:
LOCAL_C_INCLUDES := $(LOCAL_PATH)/src/include/
您当然可以指定多个位置:
LOCAL_C_INCLUDES := $(LOCAL_PATH)/src/include/ LOCAL_C_INCLUDES += $(LOCAL_PATH)/project2/src/include/
请注意,当ndk-build实用程序评估此变量时,其值被视为相对于$(LOCAL_PATH),因此在LOCAL_C_INCLUDES中给出路径时需要使用$(LOCAL_PATH).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。