当前位置: 首页 > news >正文

libaom 在ubuntu 上用鸿蒙OHOS编译

1) 导入 OHOS 环境(当前会话)

export OHOS_SDK=/root/harmony/command-line-tools/sdk/default/openharmony
export OHOS_SYSROOT=$OHOS_SDK/native/sysroot
export PATH=$OHOS_SDK/native/llvm/bin:$PATH# 确认编译器&sysroot可用
which aarch64-linux-ohos-clang
test -d "$OHOS_SYSROOT/usr/include" && echo "SYSROOT OK" || echo "SYSROOT MISSING"

2) 重新写入“最小可用”的 toolchain(避免解析错误)

cd ~/aom
cat > toolchain-ohos-aarch64.cmake <<'EOF'
# --- Minimal OHOS aarch64 toolchain for libaom (safe formatting) ---
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)# Prefer OHOS clang
set(CMAKE_C_COMPILER aarch64-linux-ohos-clang)
set(CMAKE_CXX_COMPILER aarch64-linux-ohos-clang++)# Sysroot from env
if(DEFINED ENV{OHOS_SYSROOT})set(CMAKE_SYSROOT "$ENV{OHOS_SYSROOT}")
else()message(FATAL_ERROR "OHOS_SYSROOT not set in environment.")
endif()# Search in sysroot
set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)# PIC
set(CMAKE_POSITION_INDEPENDENT_CODE ON)# LLVM tools (optional)
find_program(LLVM_AR llvm-ar)
if(LLVM_AR)set(CMAKE_AR ${LLVM_AR})
endif()
find_program(LLVM_RANLIB llvm-ranlib)
if(LLVM_RANLIB)set(CMAKE_RANLIB ${LLVM_RANLIB})
endif()# Fallback: host clang + --target
find_program(HOST_CLANG clang)
find_program(HOST_CLANGXX clang++)
if(NOT EXISTS "/usr/bin/aarch64-linux-ohos-clang")if(HOST_CLANG AND HOST_CLANGXX)set(CMAKE_C_COMPILER   ${HOST_CLANG})set(CMAKE_CXX_COMPILER ${HOST_CLANGXX})set(CMAKE_C_FLAGS   "${CMAKE_C_FLAGS}   --target=aarch64-unknown-linux-ohos")set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --target=aarch64-unknown-linux-ohos")set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} --target=aarch64-unknown-linux-ohos")endif()
endif()
EOF# 确保是UNIX换行,避免“Parse error”
dos2unix toolchain-ohos-aarch64.cmake

  3) 生成 & 编译(Ninja)

mkdir -p ~/aom/build-ohos
cd ~/aom/build-ohos
rm -rf CMakeCache.txt CMakeFiles cmake_install.cmake Makefile build.ninjacmake .. \-G Ninja \-DCMAKE_TOOLCHAIN_FILE=../toolchain-ohos-aarch64.cmake \-DCMAKE_BUILD_TYPE=Release \-DBUILD_SHARED_LIBS=0 \-DENABLE_DOCS=0 \-DENABLE_TESTS=0 \-DENABLE_EXAMPLES=0 \-DAOM_TARGET_CPU=aarch64 \-DAOM_TARGET_SYSTEM=linuxninja -j"$(nproc)"# 产物检查
ls -lh libaom.*

  4)安装

    ninja install 

 

http://www.gsyq.cn/news/21904.html

相关文章:

  • p66 实训2
  • [asm/c]:SYSCALL系统调用的编号(x86_64)
  • 人生的底色
  • ansible安装脚本
  • 详细介绍:【笔记】介绍 WPF XAML 中 Binding 的 StringFormat详细功能
  • 结果(Results)和结论 (Conclusion)的联系与区别
  • 20251015
  • [QOJ888] Travel around China 题解
  • P1912 [NOI2009] 诗人小G 分析
  • CSP-S 模拟 29
  • 实用指南:【编号508】(道路分类)湖南路网数据湖南路网分类数据(2025年)
  • 深入解析:Leetcode+Java+图论+岛屿问题
  • 简单介绍
  • agent策略分析与Parer解读
  • Visual Studio 2022连接mysql数据库,解决System.Data.Odbc.OdbcException (0x80131937)
  • [20251014]建立和完善col_list.sql脚本.txt
  • 倍增法
  • 鸿蒙NEXT Wi-Fi扫描编写指南:从基础到实战
  • 251015读书报告
  • 元推理框架的诞生,是绝对真实的证明,彻底击溃虚无论
  • 吴恩达深度学习课程一:神经网络和深度学习 第二周:神经网络基础 课后习题和代码实践
  • 蛋白表达标签:提升重组蛋白研究与生产的关键工具
  • Zhengrui #3346. DINO
  • Pytorch深度学习训练
  • P11894 「LAOI-9」Update
  • win10软实时设置 - 教程
  • 实用指南:Hunyuan3D-Omni:可控3D资产生成的统一框架
  • ZR 2025 NOIP 二十连测 Day 3
  • P66实训题
  • 非主流网站程序IndexNow添加方法