ndk-build问题记录

本文解析了LOCAL_SRC_FILES指向缺失文件的问题,揭示了Android.mk文件使用UTF-8-BOM编码而非标准UTF-8导致的构建错误。在Windows环境下,此错误表现为ndk-build过程中$(call my-dir)指令输出路径异常。文章提供了将文件编码从UTF-8-BOM转换为UTF-8的解决方案,并附带了针对不同架构so文件的Gradle配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LOCAL_SRC_FILES points to a missing file


导致这个问题的原因很多,我遇到的是一个非常不容易发现的原因导致的。
问题原因:Android.mk文件编码格式为UTF-8-BOM不是一般的UTF-8格式;
问题现象:在windows的命令行中使用ndk-build时,会导致$(call my-dir)输出的是ndk路径中某个目录的路径,从而会导致标题中的错误,而在cygwin中执行时正常;
解决方案:将Android.mk文件的编码格式由UTF-8-BOM修改为UTF-8格式

在android-library打包工程的时候在jniLibs目录中存在多个so的情况下,可以在build.gradle中使用以下脚本进行单个so的打包调试,最终的so一般由应用打包就不赘述。
android{
packagingOptions{
pickFirst ‘lib/x86/libmyjni.so’
pickFirst ‘lib/armeabi/libmyjni.so’
pickFirst ‘lib/armeabi-v7a/libmyjni.so’
}
}

<think>好的,我现在需要处理用户关于“e-build”的查询。首先,用户可能指的是某个特定的构建工具,但根据提供的引用内容,系统中并没有直接提到“e-build”。这可能是一个拼写错误,或者用户可能混淆了不同的构建工具名称。接下来,我需要检查提供的引用内容,看看是否有相关的工具或类似名称的工具。 引用[1]提到了ndk-build、Makefile和CMake,引用[2]讨论了CMake的高级选项,引用[3]涉及GitLab CI/CD中的artifacts配置。这些内容都是关于构建工具和持续集成的,但并没有提到“e-build”。因此,可能需要考虑用户是否有拼写错误,例如将“ebuild”(Gentoo Linux的包管理格式)或“Eclipse Build”误写为“e-build”。此外,也有可能是用户自创的术语或特定领域的工具。 接下来,我需要确定如何回应。由于没有直接的相关信息,应该首先告知用户当前资料中没有“e-build”的记录,并推测可能的正确名称。然后,根据现有引用中的构建工具,如CMake、ndk-build、GitLab CI等,提供相关的信息,帮助用户找到他们可能需要的资源。同时,建议用户确认名称的正确性或提供更多上下文,以便更准确地解答。 此外,根据用户提供的示例回答结构,需要生成相关问题。这些问题应围绕可能的构建工具,如CMake的使用、性能优化、与ndk-build的区别等,以及持续集成中的产物管理,如GitLab的artifacts。 最后,确保回答符合系统级指令,正确使用LaTeX格式,结构清晰,引用适当。</think>关于“e-build”这一术语,在现有的构建工具生态中并未发现直接对应的标准工具[^1][^2][^3]。可能涉及以下三种情况: 1. **术语误写** 可能是对常见构建工具的拼写偏差,例如: - $Gentoo$ 的包管理格式$ebuild$ - $Eclipse$ 的构建系统 - $Embedded$ 领域的专用工具链 2. **复合工具链** 可能指集成化构建方案,如: ```bash # 示例:组合CMake与GitLab CI的构建流程 cmake --build ./build --config Release --parallel 8 ``` 此类流程通常结合$CMake$[^2]与$CI/CD$工具 3. **自定义系统** 某些企业会开发内部构建工具,这类系统通常包含: - 依赖解析算法(如$O(n \log n)$复杂度) - 分布式编译支持 - 产物管理(参考GitLab的artifacts)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值