如何在android.mk文件中指定c头文件

我有一个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).

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...