HarmonyOS 鸿蒙Next webrtc编译错误
HarmonyOS 鸿蒙Next webrtc编译错误
home/sjc/workspace/irtc
ohos_libc_dir : …/…/…/…/…/…/sdk-linux-4.1.3.700/sdk/HarmonyOS-NEXT-DP2/base/native/sysroot/usr/lib/arm-linux-ohos
clang_rt_dir : …/…/…/…/…/…/sdk-linux-4.1.3.700/sdk/HarmonyOS-NEXT-DP2/base/native/llvm/lib/arm-linux-ohos/nanlegacy
ohos_libc_dir : …/…/…/…/…/…/sdk-linux-4.1.3.700/sdk/HarmonyOS-NEXT-DP2/base/native/sysroot/usr/lib/aarch64-linux-ohos
clang_rt_dir : …/…/…/…/…/…/sdk-linux-4.1.3.700/sdk/HarmonyOS-NEXT-DP2/base/native/llvm/lib/aarch64-linux-ohos/nanlegacy
ohos_libc_dir : …/…/…/…/…/…/sdk-linux-4.1.3.700/sdk/HarmonyOS-NEXT-DP2/base/native/sysroot/usr/lib/x86_64-linux-ohos
clang_rt_dir : …/…/…/…/…/…/sdk-linux-4.1.3.700/sdk/HarmonyOS-NEXT-DP2/base/native/llvm/lib/x86_64-linux-ohos/nanlegacy
Done. Made 844 targets from 239 files in 170ms
ninja: Entering directory `out/release-arm64’
[1/368] AR obj/third_party/webrtc/video/adaptation/libvideo_adaptation.a
[2/368] STAMP clang_x64/obj/build/win/default_exe_manifest.stamp
[3/368] LINK ./stun_prober
FAILED: stun_prober exe.unstripped/stun_prober
python “…/…/build/toolchain/gcc_link_wrapper.py” --output="./stun_prober" --strip="…/…/…/…/…/…/sdk-linux-4.1.3.700/sdk/HarmonyOS-NEXT-DP2/base/native/llvm/bin/llvm-strip" --unstripped-file="./exe.unstripped/stun_prober" – …/…/…/…/…/…/sdk-linux-4.1.3.700/sdk/HarmonyOS-NEXT-DP2/base/native/llvm/bin/clang++ -Wl,–fatal-warnings -Wl,-O2 -Wl,–gc-sections --sysroot=…/…/…/…/…/…/sdk-linux-4.1.3.700/sdk/HarmonyOS-NEXT-DP2/base/native/sysroot -Wl,–no-undefined -Wl,–exclude-libs=libunwind_llvm.a -Wl,–exclude-libs=libc++_static.a -Wl,–exclude-libs=libvpx_assembly_arm.a --target=aarch64-linux-ohos -o “./exe.unstripped/stun_prober” …/…/…/…/…/…/sdk-linux-4.1.3.700/sdk/HarmonyOS-NEXT-DP2/base/native/sysroot/usr/lib/aarch64-linux-ohos/Scrt1.o …/…/…/…/…/…/sdk-linux-4.1.3.700/sdk/HarmonyOS-NEXT-DP2/base/native/sysroot/usr/lib/aarch64-linux-ohos/crti.o -Wl,–start-group @"./stun_prober.rsp" -Wl,–end-group …/…/…/…/…/…/sdk-linux-4.1.3.700/sdk/HarmonyOS-NEXT-DP2/base/native/sysroot/usr/lib/aarch64-linux-ohos/crtn.o
ld.lld: error: duplicate symbol: _init
>>> defined at crti.s:8 (/mnt/disk/workspace/jenkins_cd_pool_high_001/harmony/out/sdk/obj/third_party/musl/intermidiates/linux/musl_src_ported/crt/aarch64/crti.s:8)
>>> …/…/…/…/…/…/sdk-linux-4.1.3.700/sdk/HarmonyOS-NEXT-DP2/base/native/sysroot/usr/lib/aarch64-linux-ohos/crti.o:(.init+0x0)
>>> defined at crti.s:8 (/mnt/disk/workspace/jenkins_cd_pool_high_001/harmony/out/sdk/obj/third_party/musl/intermidiates/linux/musl_src_ported/crt/aarch64/crti.s:8)
>>> …/…/…/…/…/…/sdk-linux-4.1.3.700/sdk/HarmonyOS-NEXT-DP2/base/native/sysroot/usr/lib/aarch64-linux-ohos/crti.o:(.init+0x0)
ld.lld: error: duplicate symbol: _start
>>> defined at Scrt1.c
>>> …/…/…/…/…/…/sdk-linux-4.1.3.700/sdk/HarmonyOS-NEXT-DP2/base/native/sysroot/usr/lib/aarch64-linux-ohos/Scrt1.o:(.text+0x0)
>>> defined at Scrt1.c
>>> …/…/…/…/…/…/sdk-linux-4.1.3.700/sdk/HarmonyOS-NEXT-DP2/base/native/sysroot/usr/lib/aarch64-linux-ohos/Scrt1.o:(.text+0x0)
ld.lld: error: duplicate symbol: _start_c
>>> defined at crt1.c:15 (obj/third_party/musl/intermidiates/linux/musl_src_ported/crt/crt1.c:15)
>>> …/…/…/…/…/…/sdk-linux-4.1.3.700/sdk/HarmonyOS-NEXT-DP2/base/native/sysroot/usr/lib/aarch64-linux-ohos/Scrt1.o:(_start_c)
>>> defined at crt1.c:15 (obj/third_party/musl/intermidiates/linux/musl_src_ported/crt/crt1.c:15)
>>> …/…/…/…/…/…/sdk-linux-4.1.3.700/sdk/HarmonyOS-NEXT-DP2/base/native/sysroot/usr/lib/aarch64-linux-ohos/Scrt1.o:(.text._start_c+0x0)
ld.lld: error: duplicate symbol: _fini
>>> defined at crti.s:16 (/mnt/disk/workspace/jenkins_cd_pool_high_001/harmony/out/sdk/obj/third_party/musl/intermidiates/linux/musl_src_ported/crt/aarch64/crti.s:16)
>>> …/…/…/…/…/…/sdk-linux-4.1.3.700/sdk/HarmonyOS-NEXT-DP2/base/native/sysroot/usr/lib/aarch64-linux-ohos/crti.o:(.fini+0x0)
>>> defined at crti.s:16 (/mnt/disk/workspace/jenkins_cd_pool_high_001/harmony/out/sdk/obj/third_party/musl/intermidiates/linux/musl_src_ported/crt/aarch64/crti.s:16)
>>> …/…/…/…/…/…/sdk-linux-4.1.3.700/sdk/HarmonyOS-NEXT-DP2/base/native/sysroot/usr/lib/aarch64-linux-ohos/crti.o:(.fini+0x0)
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
[4/368] CXX clang_x64/obj/buildtools/third_party/libc++/libc++/algorithm.o
FAILED: clang_x64/obj/buildtools/third_party/libc++/libc++/algorithm.o
这个是错误怎么解决
开发者您好,错误是由于重复定义了一些符号导致的链接错误。请应用检查代码实现。
代码没有改动呢,只是把编译器换成了华为的交叉编译器,如果是代码这边订阅重复导致的,gcc编译应该也会报错,而且看报错的位置看上去是华为sdk的编译目录 /mnt/disk/workspace/jenkins_cd_pool_high_001/harmony/out/sdk/obj/third_party/musl/intermidiates/linux/musl_src_ported/crt/aarch64/crti.s:16 我本地的机器是没有这个目录的
- 在C程序的启动过程中,
_start
是一个由操作系统(如Linux)提供的函数,它作为程序的入口点3。在调用main
函数之前,_start
函数会执行一些必要的初始化工作,如设置运行环境、调用全局和静态变量的初始化函数等3。 - 通常情况下,用户不需要直接编写或调用
_start
函数,因为它是由编译器和链接器自动处理的3。
针对HarmonyOS 鸿蒙Next webrtc编译错误的问题,以下是一些可能的解决方案:
- 确认SDK版本:请确保你使用的HarmonyOS SDK是最新版本,因为旧版本的SDK可能存在bug或不支持某些特性,导致编译失败。你可以在HarmonyOS的官方网站或开发者平台上找到最新版本的SDK。
- 检查编译工具链:确保你的编译工具链(如NDK、CMake等)与SDK版本兼容。新版本的SDK可能需要更新版本的编译工具。
- 查看错误日志:编译失败时,请仔细检查错误日志,错误日志将提供有关编译失败原因的关键信息。根据错误类型(如语法错误、链接错误、依赖错误等),选择相应的解决方案。
- 更新项目配置:检查项目的build.gradle和settings.gradle文件,确保配置正确,特别是依赖项和插件版本。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。