HarmonyOS鸿蒙Next编译失败,ninja: error: 找不到libclang_rt.builtins.a

HarmonyOS鸿蒙Next编译失败,ninja: error: 找不到libclang_rt.builtins.a HarmonyOS编译失败,日志如下:

[OHOS INFO] Filesystem: /dev/sdd1, Size: 1.9T, Used: 1.2T, Available: 595G, Use%: 67%, Mounted on: /mnt/wsl/PHYSICALDRIVE2p1

[OHOS ERROR] [NINJA] Traceback (most recent call last):

[OHOS ERROR] [NINJA] File “/mnt/wsl/PHYSICALDRIVE2p1/HarmonyOS/build/hb/containers/status.py”, line 47, in wrapper

[OHOS ERROR] [NINJA] return func(*args, **kwargs)

[OHOS ERROR] [NINJA] File “/mnt/wsl/PHYSICALDRIVE2p1/HarmonyOS/build/hb/modules/ohos_build_module.py”, line 71, in run

[OHOS ERROR] [NINJA] raise exception

[OHOS ERROR] [NINJA] File “/mnt/wsl/PHYSICALDRIVE2p1/HarmonyOS/build/hb/modules/ohos_build_module.py”, line 68, in run

[OHOS ERROR] [NINJA] super().run()

[OHOS ERROR] [NINJA] File “/mnt/wsl/PHYSICALDRIVE2p1/HarmonyOS/build/hb/modules/interface/build_module_interface.py”, line 70, in run

[OHOS ERROR] [NINJA] raise exception

[OHOS ERROR] [NINJA] File “/mnt/wsl/PHYSICALDRIVE2p1/HarmonyOS/build/hb/modules/interface/build_module_interface.py”, line 68, in run

[OHOS ERROR] [NINJA] self._ninja()

[OHOS ERROR] [NINJA] File “/mnt/wsl/PHYSICALDRIVE2p1/HarmonyOS/build/hb/util/timer_util.py”, line 30, in inner

[OHOS ERROR] [NINJA] res = func(*arg, **kwarg)

[OHOS ERROR] [NINJA] File “/mnt/wsl/PHYSICALDRIVE2p1/HarmonyOS/build/hb/modules/interface/build_module_interface.py”, line 125, in _ninja

[OHOS ERROR] [NINJA] self._target_compilation()

[OHOS ERROR] [NINJA] File “/mnt/wsl/PHYSICALDRIVE2p1/HarmonyOS/build/hb/modules/ohos_build_module.py”, line 133, in _target_compilation

[OHOS ERROR] [NINJA] self.target_compiler.run()

[OHOS ERROR] [NINJA] File “/mnt/wsl/PHYSICALDRIVE2p1/HarmonyOS/build/hb/services/ninja.py”, line 39, in run

[OHOS ERROR] [NINJA] self._execute_ninja_cmd()

[OHOS ERROR] [NINJA] File “/mnt/wsl/PHYSICALDRIVE2p1/HarmonyOS/build/hb/services/ninja.py”, line 70, in _execute_ninja_cmd

[OHOS ERROR] [NINJA] SystemUtil.exec_command(

[OHOS ERROR] [NINJA] File “/mnt/wsl/PHYSICALDRIVE2p1/HarmonyOS/build/hb/util/system_util.py”, line 142, in exec_command

[OHOS ERROR] [NINJA] LogUtil.get_failed_log(log_path, cmd)

[OHOS ERROR] [NINJA] File “/mnt/wsl/PHYSICALDRIVE2p1/HarmonyOS/build/hb/util/log_util.py”, line 220, in get_failed_log

[OHOS ERROR] [NINJA] LogUtil.get_ninja_failed_log(log_path)

[OHOS ERROR] [NINJA] File “/mnt/wsl/PHYSICALDRIVE2p1/HarmonyOS/build/hb/util/log_util.py”, line 173, in get_ninja_failed_log

[OHOS ERROR] [NINJA] raise OHOSException(

[OHOS ERROR] [NINJA] exceptions.ohos_exception.OHOSException: NINJA Failed! Please check error in /mnt/wsl/PHYSICALDRIVE2p1/HarmonyOS/out/rk3568/error.log, and for more build information in /mnt/wsl/PHYSICALDRIVE2p1/HarmonyOS/out/rk3568/build.log

[OHOS ERROR] [NINJA]

[OHOS ERROR] [NINJA] Code: 4016

[OHOS ERROR] [NINJA]

[OHOS ERROR] [NINJA] Reason: NINJA Failed! Please check error in /mnt/wsl/PHYSICALDRIVE2p1/HarmonyOS/out/rk3568/error.log, and for more build information in /mnt/wsl/PHYSICALDRIVE2p1/HarmonyOS/out/rk3568/build.log

[OHOS ERROR] [NINJA]

[OHOS ERROR] [NINJA] Error Type: ninja build error: missing and no known rule to make it

[OHOS ERROR] [NINJA]

[OHOS ERROR] [NINJA] Description: Ninja build error. The ninja build system cannot find the target.

[OHOS ERROR] [NINJA]

[OHOS ERROR] [NINJA] Solution: Please check the target file is exists.

[OHOS ERROR] [NINJA]

scons: *** [out/rk3568/rk3568/system.out] Error -1

please check the compilation log: /home/punan/.deveco-device-tool/logs/build/build.log

====================================================== [FAILED] Took 111.02 seconds ======================================================

  • The terminal process “/home/punan/Huawei/DevEco-Device-Tool/core/deveco-venv/bin/hos ‘run’, ‘–project-dir’, ‘/mnt/wsl/PHYSICALDRIVE2p1/HarmonyOS’, ‘–environment’, ‘rk3568’” terminated with exit code: 1.

  • Terminal will be reused by tasks, press any key to close it.

/mnt/wsl/PHYSICALDRIVE2p1/HarmonyOS/out/rk3568/error.log日志如下:

ninja: error: ‘…/…/prebuilts/clang/ohos/linux-x86_64/llvm/lib/clang/15.0.4/lib/arm-linux-ohos/libclang_rt.builtins.a’, needed by ‘thirdparty/bounds_checking_function/libsec_shared.z.so’, missing and no known rule to make it


更多关于HarmonyOS鸿蒙Next编译失败,ninja: error: 找不到libclang_rt.builtins.a的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

编译失败是因为缺少libclang_rt.builtins.a库文件。该库是编译器运行时支持库,通常由NDK或工具链提供。请检查你的HarmonyOS SDK或NDK版本是否完整,并确保工具链路径配置正确。在构建配置中确认使用的clang工具链包含必要的运行时库。

更多关于HarmonyOS鸿蒙Next编译失败,ninja: error: 找不到libclang_rt.builtins.a的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这个错误表明编译系统在链接时找不到 libclang_rt.builtins.a 这个关键的运行时库文件。该文件是Clang编译器为特定目标平台(这里是 arm-linux-ohos)提供的内置函数(builtins)静态库,缺少它会导致链接失败。

根据你的日志,系统在以下路径寻找该文件: ../../prebuilts/clang/ohos/linux-x86_64/llvm/lib/clang/15.0.4/lib/arm-linux-ohos/libclang_rt.builtins.a

这是一个相对路径。从你的项目根目录 /mnt/wsl/PHYSICALDRIVE2p1/HarmonyOS 出发,对应的绝对路径应该是: /mnt/wsl/PHYSICALDRIVE2p1/HarmonyOS/prebuilts/clang/ohos/linux-x86_64/llvm/lib/clang/15.0.4/lib/arm-linux-ohos/libclang_rt.builtins.a

请按以下步骤排查:

  1. 验证文件是否存在: 在终端中执行以下命令,检查该文件是否确实缺失:

    ls -la /mnt/wsl/PHYSICALDRIVE2p1/HarmonyOS/prebuilts/clang/ohos/linux-x86_64/llvm/lib/clang/15.0.4/lib/arm-linux-ohos/libclang_rt.builtins.a
    

    如果文件不存在,这是问题的根源。

  2. 检查预编译工具链的完整性(最常见原因)prebuilts 目录下的内容是HarmonyOS源码树提供的预编译工具链和依赖。文件缺失通常是因为:

    • 源码拉取不完整:在最初使用 repo sync 或类似命令拉取代码时可能中断或失败。
    • 工具链包损坏:下载的预编译包本身不完整。
  3. 解决方案

    • 重新同步预编译工具链:在项目根目录下,尝试重新拉取或更新 prebuilts。具体命令取决于你的获取方式,通常可能是:
      # 如果使用repo管理整个项目
      repo sync -c --no-tags prebuilts/clang
      
      或者,有时需要删除 prebuilts/clang 目录后重新执行完整的编译环境准备步骤(如 ./build/prebuilts_download.sh,具体脚本请参考官方文档)。
    • 检查磁盘空间:你的日志显示可用空间约595GB,理论上是足够的,但可以确认一下 prebuilts 所在分区的空间。
    • 确认编译环境配置:确保你执行的编译命令(如 ./build.sh --product-name rk3568)与你的源码版本和产品配置匹配。不同版本可能需要不同版本的工具链。

核心操作是确认并恢复缺失的 libclang_rt.builtins.a 文件到指定路径。 优先检查 prebuilts/clang 目录的完整性。

回到顶部