HarmonyOS 鸿蒙Next ncnn源码cmake交叉编译hmos sdk出现.a文件is neither ET_REL nor LLVM bitcode问题

发布于 1周前 作者 wuwangju 来自 鸿蒙OS

HarmonyOS 鸿蒙Next ncnn源码cmake交叉编译hmos sdk出现.a文件is neither ET_REL nor LLVM bitcode问题

我使用hmos linux的sdk来编译ncnn源码库,cke_6754.png

但是看到有warming报错,提示sdk中的llvm没有被使用

image.png

然后我把生成的.a文件放到单框架工程去编译,提示下面信息

image.png

求大佬解答!

1 回复

在HarmonyOS(鸿蒙)环境下,使用ncnn源码进行cmake交叉编译时遇到“.a文件is neither ET_REL nor LLVM bitcode”的问题,通常表明静态库(.a文件)与目标平台或编译工具链不兼容。这里有几个可能的解决方案:

  1. 确认工具链匹配:确保你使用的编译工具链是为HarmonyOS SDK专门配置的,且支持目标硬件架构。

  2. 检查库文件:验证.a库文件是否确实为HarmonyOS或兼容架构编译生成。如果库文件是从其他平台移植而来,可能需要重新编译。

  3. LLVM Bitcode支持:检查编译选项是否启用了LLVM Bitcode支持,或者尝试关闭该选项,因为不是所有环境都支持LLVM Bitcode。

  4. ET_REL类型:确保库文件是以正确的ELF类型(ET_REL,即重定位文件)编译的,这通常与编译命令中的-fPIC(位置无关代码)选项有关。

  5. 清理并重新构建:完全清理之前的构建结果,确保没有遗留的不兼容文件,然后重新运行cmake和make。

HarmonyOS 鸿蒙Next知识点学习地址www.itying.com/goods-1204.html

回到顶部