HarmonyOS 鸿蒙Next NDK项目编译报错

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

HarmonyOS 鸿蒙Next NDK项目编译报错

打开了一个ndk项目,运行模拟器后,点击run,编译报错,信息如下:

```swift
hvigor ERROR: Failed :entry:default[@BuildNativeWithCmake](/user/BuildNativeWithCmake)... 
> hvigor ERROR: Exceptions happened while executing: Not searching for unused variables given on the command line.
-- The C compiler identification is Clang 15.0.4
-- The CXX compiler identification is unknown
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/DevEco-Studio.app/Contents/sdk/default/openharmony/native/llvm/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - failed
-- Check for working CXX compiler: /Applications/DevEco-Studio.app/Contents/sdk/default/openharmony/native/llvm/bin/clang++
-- Check for working CXX compiler: /Applications/DevEco-Studio.app/Contents/sdk/default/openharmony/native/llvm/bin/clang++ - broken
CMake Error at /Applications/DevEco-Studio.app/Contents/sdk/default/openharmony/native/build-tools/cmake/share/cmake-3.28/Modules/CMakeTestCXXCompiler.cmake:60 (message):
  The C++ compiler

    "/Applications/DevEco-Studio.app/Contents/sdk/default/openharmony/native/llvm/bin/clang++"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: '/Users/admin/HarmonyProjects/SE4OpenHarmony-main/Apps/OHApps/0_show_case/entry/.cxx/default/default/debug/arm64-v8a/CMakeFiles/CMakeScratch/TryCompile-fSeyfp'
    
    Run Build Command(s): /Applications/DevEco-Studio.app/Contents/sdk/default/openharmony/native/build-tools/cmake/bin/ninja -v cmTC_34132
    [1/2] /Applications/DevEco-Studio.app/Contents/sdk/default/openharmony/native/llvm/bin/clang++ -I/Applications/DevEco-Studio.app/Contents/sdk/default/hms/native/sysroot/usr/include -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security   -D__MUSL__ -o CMakeFiles/cmTC_34132.dir/testCXXCompiler.cxx.o -c /Users/admin/HarmonyProjects/SE4OpenHarmony-main/Apps/OHApps/0_show_case/entry/.cxx/default/default/debug/arm64-v8a/CMakeFiles/CMakeScratch/TryCompile-fSeyfp/testCXXCompiler.cxx
    [2/2] : && /Applications/DevEco-Studio.app/Contents/sdk/default/openharmony/native/llvm/bin/clang++ -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security   -D__MUSL__ --rtlib=compiler-rt -fuse-ld=lld -Wl,--build-id=sha1 -Wl,--warn-shared-textrel -Wl,--fatal-warnings -lunwind -Wl,--no-undefined -Qunused-arguments -Wl,-z,noexecstack -Wl,--gc-sections CMakeFiles/cmTC_34132.dir/testCXXCompiler.cxx.o -o cmTC_34132  -lm && :
    FAILED: cmTC_34132 
    : && /Applications/DevEco-Studio.app/Contents/sdk/default/openharmony/native/llvm/bin/clang++ -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security   -D__MUSL__ --rtlib=compiler-rt -fuse-ld=lld -Wl,--build-id=sha1 -Wl,--warn-shared-textrel -Wl,--fatal-warnings -lunwind -Wl,--no-undefined -Qunused-arguments -Wl,-z,noexecstack -Wl,--gc-sections CMakeFiles/cmTC_34132.dir/testCXXCompiler.cxx.o -o cmTC_34132  -lm && :
    ld64.lld: error: unknown argument '--build-id=sha1'
    ld64.lld: error: unknown argument '--warn-shared-textrel'
    ld64.lld: error: unknown argument '--fatal-warnings'
    ld64.lld: error: unknown argument '--no-undefined'
    ld64.lld: error: unknown argument '-z'
    ld64.lld: error: unknown argument '--gc-sections'
    clang++: error: linker command failed with exit code 1 (use -v to see invocation)
    ninja: build stopped: subcommand failed.
    

  

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:4 (project)


-- Configuring incomplete, errors occurred!

> hvigor ERROR: BUILD FAILED in 13 s 682 ms 

Process finished with exit code -1

后面又尝试编译其他项目,也是报同样的错误。


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

9 回复

楼主解决了嘛,遇到了同样的问题

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


遇到同样的问题,一个工程,同样的鸿蒙idea,同样的sdk 版本,有些同事拉下来可以运行,有些就报错。楼主解决了吗?

cke_1159.png

这个问题你这边解决了嘛,

基本信息

  • 姓名: 张三
  • 年龄: 28
  • 职业: 软件工程师

技能列表

  • 熟练掌握Java
  • 熟悉Python
  • 了解C++

在工程目录下面,有个.cxx的黄色目录,这个相当于c++之前的编译依赖,当前需要手动删除,删除后,再重新构建

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17

我尝试删除.cxx目录后构建,仍然是报同样的错误。其他方法包括删除所有生成的黄色目录,以及clean project后构建,也不行。

以前有编译成功过吗,报错的参数不识别可能是编译器版本过低,不支持这些参数。用的IDE和SDK是最新的吗?

之前编译成功过,昨天更新了IDE和SDK后反而不行了(有按照官方文档将工程已经迁移到新版本)。

针对HarmonyOS鸿蒙Next NDK项目编译报错的问题,可能的原因及解决方法如下:

  1. NDK版本不匹配

    • 确保你使用的NDK版本与鸿蒙系统要求的版本一致。鸿蒙系统可能对NDK版本有特定要求,使用不兼容的版本可能导致编译错误。
  2. 构建脚本问题

    • 检查build.gradle或其他构建脚本文件,确保配置正确无误。特别是NDK路径、编译选项等设置。
  3. 依赖库问题

    • 确认项目中使用的所有第三方库都兼容鸿蒙系统。有些库可能仅支持Android,而不支持鸿蒙。
  4. 环境问题

    • 检查开发环境设置,包括IDE(如DevEco Studio)的版本、插件是否更新到最新,以及环境变量是否正确配置。
  5. 代码兼容性问题

    • 检查代码中是否有特定于Android的API调用,这些API在鸿蒙上可能不可用。需要替换为鸿蒙系统提供的对应API。

如果上述方法都不能解决你的问题,可能是项目配置或代码中存在特定于你项目的问题。此时,建议详细查看编译错误信息,定位具体问题点。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部