HarmonyOS 鸿蒙Next NDK项目编译报错
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
楼主解决了嘛,遇到了同样的问题
更多关于HarmonyOS 鸿蒙Next NDK项目编译报错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
遇到同样的问题,一个工程,同样的鸿蒙idea,同样的sdk 版本,有些同事拉下来可以运行,有些就报错。楼主解决了吗?
这个问题你这边解决了嘛,
基本信息
- 姓名: 张三
- 年龄: 28
- 职业: 软件工程师
技能列表
- 熟练掌握Java
- 熟悉Python
- 了解C++
在工程目录下面,有个.cxx的黄色目录,这个相当于c++之前的编译依赖,当前需要手动删除,删除后,再重新构建
找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17
我尝试删除.cxx目录后构建,仍然是报同样的错误。其他方法包括删除所有生成的黄色目录,以及clean project后构建,也不行。
以前有编译成功过吗,报错的参数不识别可能是编译器版本过低,不支持这些参数。用的IDE和SDK是最新的吗?
之前编译成功过,昨天更新了IDE和SDK后反而不行了(有按照官方文档将工程已经迁移到新版本)。
针对HarmonyOS鸿蒙Next NDK项目编译报错的问题,可能的原因及解决方法如下:
-
NDK版本不匹配:
- 确保你使用的NDK版本与鸿蒙系统要求的版本一致。鸿蒙系统可能对NDK版本有特定要求,使用不兼容的版本可能导致编译错误。
-
构建脚本问题:
- 检查
build.gradle
或其他构建脚本文件,确保配置正确无误。特别是NDK路径、编译选项等设置。
- 检查
-
依赖库问题:
- 确认项目中使用的所有第三方库都兼容鸿蒙系统。有些库可能仅支持Android,而不支持鸿蒙。
-
环境问题:
- 检查开发环境设置,包括IDE(如DevEco Studio)的版本、插件是否更新到最新,以及环境变量是否正确配置。
-
代码兼容性问题:
- 检查代码中是否有特定于Android的API调用,这些API在鸿蒙上可能不可用。需要替换为鸿蒙系统提供的对应API。
如果上述方法都不能解决你的问题,可能是项目配置或代码中存在特定于你项目的问题。此时,建议详细查看编译错误信息,定位具体问题点。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html,