cmake编译HarmonyOS 鸿蒙Next micro-ecc库报错

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

cmake编译HarmonyOS 鸿蒙Next micro-ecc库报错 编译三方c++库中,编译到micro-ecc库(https://github.com/kmackay/micro-ecc) 时报错:

warning: argument unused during compilation: '--gcc-toolchain=/Users/shen/Library/Huawei/Sdk/openharmony/11/native/llvm' [-Wunused-command-line-argument]

In file included from /Users/shen/kecode/mars/mars/xlog/crypt/micro-ecc-master/uECC.c:177: /Users/shen/kecode/mars/mars/xlog/crypt/micro-ecc-master/asm_arm.inc:85:36: error: ‘.syntax divided’ arm assembly not supported

"adcs %[carry], %[carry] \n\t"
note: instantiated into assembly here
.syntax divided

In file included from /Users/shen/kecode/mars/mars/xlog/crypt/micro-ecc-master/uECC.c:177: /Users/shen/kecode/mars/mars/xlog/crypt/micro-ecc-master/asm_arm.inc:139:36: error: ‘.syntax divided’ arm assembly not supported

"adcs %[carry], %[carry] \n\t"
note: instantiated into assembly here
.syntax divided

In file included from /Users/shen/kecode/mars/mars/xlog/crypt/micro-ecc-master/uECC.c:177: /Users/shen/kecode/mars/mars/xlog/crypt/micro-ecc-master/asm_arm.inc:521:41: error: ‘.syntax divided’ arm assembly not supported

"str %[c0], [%[result], %[k]] \n\t" /* result[num_words * 2 - 1] = c0 */
note: instantiated into assembly here
.syntax divided

fatal error: too many errors emitted, stopping now [-ferror-limit=]

编译arm64没问题,但是编译armv7有问题,在Android上配置:

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -marm")
set(CMAKE_ANDROID_ARM_MODE arm)

请问鸿蒙侧如何解决汇编问题


更多关于cmake编译HarmonyOS 鸿蒙Next micro-ecc库报错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

请参考新版本编译:https://gitee.com/openharmony-sig/tpc_c_cplusplus

若还不行,麻烦提供编译脚本

更多关于cmake编译HarmonyOS 鸿蒙Next micro-ecc库报错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对“cmake编译HarmonyOS 鸿蒙Next micro-ecc库报错”的问题,这里提供可能的解决方案,不涉及Java和C语言的具体内容,而是从cmake配置和HarmonyOS编译环境的角度考虑:

  1. 检查cmake版本:确保你使用的cmake版本与HarmonyOS Next要求的版本相匹配。HarmonyOS可能对cmake有特定版本的要求,不匹配可能导致编译错误。

  2. 检查工具链配置:在cmake配置中,确保正确设置了针对HarmonyOS的工具链。这包括编译器、链接器等工具的路径和参数。错误的工具链配置会导致编译失败。

  3. 查看编译错误日志:详细检查cmake编译过程中的错误输出,找到具体的错误信息。错误信息通常会指示出错的文件和代码行,以及可能的错误原因。

  4. 检查micro-ecc库依赖:确保micro-ecc库的所有依赖都已正确安装,并且版本兼容。依赖项缺失或版本不兼容也会导致编译错误。

  5. 清理并重新构建:有时候,之前的构建缓存可能会导致问题。尝试清理构建目录(通常是删除buildout目录),然后重新运行cmake和构建命令。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部