2023-01-20 387
i有一个C源文件夹名称” clib”,在那我有一些示例文件,例如1.h,1.c,2.h,2.c,3.c,3.h和and and and侧面该文件夹我有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文件时,它给了我一个错误的错误
fatal error: 1.h: No such file or directory
如果我从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.mk文件中指定c头文件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/25948.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态