gpt4 book ai didi

c - Android.mk 根据文件更改本地 C 包含目录

转载 作者:行者123 更新时间:2023-11-30 17:19:39 24 4
gpt4 key购买 nike

我正在为 android 构建一个动态库 (.so) 文件,其中包含大约 100 个本地 c 文件。这些文件都包含一个文件 c_macros.h,但所讨论的 c_macros.h 对于不同的文件组会有所不同。例如,foo0.cbar0.c需要在目录0/中包含c_macros.h,而foo1.cbar1.c需要在目录1/中包含c_macros.h

我发现可以为整个编译定义LOCAL_C_INCLUDES,以便所有 .o 文件都将使用这些本地包含。但是,是否可以为单个文件(或一组文件)指定LOCAL_C_INCLUDES,然后进行更改,以便可以为正确的文件包含正确的目录?

一种解决方案是根据正在使用的 c_macros.h 构建不同的 .so 文件,但这会为每个 .so 文件增加大约 10KB 的开销,所以我想如果可能的话,将所有内容压缩在一个大的 .so 文件中,但随后我需要解决 LOCAL_C_INCLUDES 问题。

最佳答案

您可以将其构建到单独的静态库中(您可以轻松地为每个静态库设置不同的 LOCAL_C_INCLUDES),并且只需构建一个包含静态库的 .so 文件。链接最终的 .so 文件时,不会产生任何额外的开销(静态库中的目标文件的行为与普通的单个目标文件一样)。

关于c - Android.mk 根据文件更改本地 C 包含目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28829307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com