HarmonyOS鸿蒙Next中ohos5.0.1/openssl-3.4.1的编译问题_ld.lld error: apps/libapps-lib-fmt.o is incompatible with aarch64linux

HarmonyOS鸿蒙Next中ohos5.0.1/openssl-3.4.1的编译问题_ld.lld error: apps/libapps-lib-fmt.o is incompatible with aarch64linux ohos5.0 ubuntu20的虚拟机上交叉编译openssl-3.4.1,大家有遇到类似的问题?

编译详情:

cke_1538.png


更多关于HarmonyOS鸿蒙Next中ohos5.0.1/openssl-3.4.1的编译问题_ld.lld error: apps/libapps-lib-fmt.o is incompatible with aarch64linux的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

abi 的配置是不是需要单独配置

更多关于HarmonyOS鸿蒙Next中ohos5.0.1/openssl-3.4.1的编译问题_ld.lld error: apps/libapps-lib-fmt.o is incompatible with aarch64linux的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


该错误表明链接器在尝试将apps/libapps-lib-fmt.o对象文件与aarch64-linux架构链接时检测到不兼容。可能原因是该对象文件编译时使用了与目标架构不同的指令集或ABI设置。请检查openssl-3.4.1的编译配置,确保所有组件均使用一致的aarch64架构参数构建。验证构建环境中的交叉编译工具链是否正确配置为鸿蒙Next目标平台。

这个错误表明在交叉编译openssl-3.4.1时,链接器检测到目标架构不匹配。apps/libapps-lib-fmt.o 文件被编译成了与aarch64-linux不兼容的格式。

可能的原因和解决方案:

  1. 检查交叉编译工具链配置:确保环境变量(如CC、AR、LD)正确指向aarch64-linux目标工具链,而不是主机默认工具链。

  2. 清理编译环境:执行make clean或删除构建目录,重新配置并编译。之前的构建可能残留了错误架构的目标文件。

  3. 验证Configure参数:确认openssl的配置命令包含linux-aarch64目标。例如:

    ./Configure linux-aarch64 --cross-compile-prefix=aarch64-linux-gnu-
    
  4. 检查依赖库:确保所有依赖库(如libfmt)也使用相同的交叉编译工具链编译,避免混合架构。

  5. 工具链版本兼容性:验证交叉编译工具链是否支持openssl-3.4.1的特性。可尝试使用HarmonyOS NDK中的工具链。

重新配置时,明确指定sysroot和工具链前缀可能有助于解决架构不匹配问题。

回到顶部