以下是在 Ubuntu 20.04 系统上的操作,tpc_c_cplusplus 他是把编译的流程都给写进去了,你只需要关注你要编译的库配置好环境就行了。

第一步:下载 tpc_c_cplusplus  仓库地址:  

GitCode - 全球开发者的开源社区,开源代码托管平台

openharmony-sig 组织已经写好了脚本,先进入他的 thirdparty 目录下,找你想要编译的库;

第二步:如果你里有你需要用的库,就进入到  lycium 目录下,开始尝试编译; 以 libxml2 为例编译; 

./build.sh libxml2

这个时间,如果你没配置环境变量,他会提示你的;

第三步: 配置环境变量:配置前去 下载中心 下载 command Line Tools for HarmonyOS,下载完配置好 OHOS_SDK 以及其他编译需要用到的工具,你可以配置到全局,我这里就临时配置一下:

export OHOS_SDK=~/home/command-line-tools/sdk/default/openharmonyexport AS=${OHOS_SDK}/native/llvm/bin/llvm-as
export CC="${OHOS_SDK}/native/llvm/bin/clang --target=aarch64-linux-ohos"
export CXX="${OHOS_SDK}/native/llvm/bin/clang++ --target=aarch64-linux-ohos"
export LD=${OHOS_SDK}/native/llvm/bin/ld.lld
export STRIP=${OHOS_SDK}/native/llvm/bin/llvm-strip
export RANLIB=${OHOS_SDK}/native/llvm/bin/llvm-ranlib
export OBJDUMP=${OHOS_SDK}/native/llvm/bin/llvm-objdump
export OBJCOPY=${OHOS_SDK}/native/llvm/bin/llvm-objcopy
export NM=${OHOS_SDK}/native/llvm/bin/llvm-nm
export AR=${OHOS_SDK}/native/llvm/bin/llvm-ar
export CFLAGS="-fPIC -D__MUSL__=1"
export CXXFLAGS="-fPIC -D__MUSL__=1"

配置好后,  再运行:

./build.sh libxml2

cke_27323.gif

如果你还有工具没有安装, 他会提示你,我第一次的时候,就遇到了 cmake  没有安装的提示:

然后, 这里安装完后,还是有问题,我用默认安装的 cmake 的版本有点低,如果你也遇到,可以去下载这个:

wget https://github.com/Kitware/CMake/releases/download/v3.28.3/cmake-3.28.3-linux-x86_64.tar.gz

下载完后,配置到PATH:cmake --version 查一下当前使用的版本是对的; 

export PATH=~/wgx/cmake-3.28.3-linux-x86_64/bin:$PATH
cmake --version
cmake version 3.28.3

拷贝编译工具

为了简化开发中命令的配置,我们针对arm架构以及aarch64架构集成了几个编译命令,存放在lycium/Buildtools目录下,在使用lycium工具前,需要将这些编译命令拷贝到SDK对应的目录下,具体操作如下:

    cd lycium/Buildtools                        # 进入到工具包目录sha512sum -c SHA512SUM                      # 可校验工具包是否正常, 若输出"toolchain.tar.gz: OK"则说明工具包正常,否则说明工具包异常,需重新下载tar -zxvf toolchain.tar.gz                  # 解压拷贝编译工具cp toolchain/* ${OHOS_SDK}/native/llvm/bin  # 将命令拷贝到工具链的native/llvm/bin目录下

设置编译机cmake识别OHOS系统

由于sdk中的cmake版本过低, 导致很多开源库在cmake阶段报错. 这个时候就需要用户在编译机上安装一个高版本的cmake(推荐使用3.26及以上版本). 但是 cmake官方是不支持OHOS的. 解决方案:

cp $OHOS_SDK/native/build-tools/cmake/share/cmake-3.16/Modules/Platform/OHOS.cmake xxx(代表你编译机安装的cmake的路径)/cmake-3.28.3-linux-x86_64/share/cmake-3.26/Modules/Platform

做完以上这些,再次运行  ./build.sh libxml2 

编译的产物会在  lycium/usb 目录下, 就会有 libxml2 文件夹,进入 libxml2,里面是长这样的,然后把include 和 lib 拷贝到鸿蒙工程里就可以使用了。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/94325.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/94325.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/94325.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LLaMA-Factory 中配置文件或命令行里各个参数的含义

常见参数分类 & 含义对照表: 🔹模型相关参数含义model_name_or_path基础模型的路径(本地或 HuggingFace Hub 上的名字,如 meta-llama/Llama-2-7b-hf)adapter_name_or_pathLoRA/Adapter 权重路径(如果要…

JavaScript 性能优化实战技术文章大纲

一、引言1.1 背景阐述在当今 Web 应用高度交互化、复杂化的趋势下,JavaScript 作为核心脚本语言,其性能优劣直接决定了用户体验的好坏。从单页应用(SPA)的流畅运行,到复杂数据可视化的实时交互,JavaScript …

正点原子【第四期】Linux之驱动开发学习笔记-2.1LED灯驱动实验(直接操作寄存器)

前言: 本文是根据哔哩哔哩网站上“正点原子【第四期】手把手教你学Linux系列课程之 Linux驱动开发篇”视频的学习笔记,该课程配套开发板为正点原子alpha/mini Linux开发板。在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内…

【GM3568JHF】FPGA+ARM异构开发板 测试命令

本章节的命令操作均在板卡的终端执行 1 初探/sys目录 与/proc目录类似,/sys目录下的文件/文件夹向用户提供了一些关于设备、内核模块、文件系统以及其他内核组件的信息, 如子目录block中存放了所有的块设备;子目录bus中存放了系统中所有的总…

【Win】Motrix+Aria2浏览器下载加速

系统安装Motrix Motrix官网下载,推荐下载NSIS Installer 安装版 浏览器安装Aria2 下载Aria2插件,然后开发者模式安装到浏览器 Aria2扩展选项的配置如下: 端口号需要改成Motrix的,默认是16800

SpringBoot applicationContext.getBeansOfType获取某一接口所有实现类,应用于策略模式

本文介绍了如何在Springboot项目中通过ApplicationContext获取接口的实现类,并通过枚举策略模式避免if/else,展示了如何使用getBeansOfType获取TrafficModeService的实现,以及如何在实际场景中应用,如查询交通方式费用 1 在实际工…

大模型问题:幻觉分类+原因+各个训练阶段产生幻觉+幻觉的检测和评估基准

1. 什么是幻觉?大模型出现幻觉,简而言之就是“胡说八道”。 用《A Survey on Hallucination in Large Language Models》1文中的话来讲,是指模型生成的内容与现实世界事实或用户输入不一致的现象。 研究人员将大模型的幻觉分为事实性幻觉&…

智慧冷库物联网解决方案——实现降本增效与风险可控的冷库管理新范式

一、冷库管理痛点设备孤岛化:冷库品牌、型号分散,缺乏统一接入标准,数据互通难,依赖人工巡检,故障响应滞后。能耗黑洞:制冷系统能耗占冷库总运营成本的60%以上,传统管理粗放,缺乏动态…

太空生活的八种要素

数代以来,科学家们一直在银河系中搜寻地外行星存在生命的证据。他们试图找到一组特定的环境条件与化学物质,在恰当的时间、恰当的地点交汇融合。 通过研究人类、植物、动物及微生物在地球上的生存与繁衍方式,科学家们已识别出生命演化所需的关…

Flutter 小技巧之有趣的 UI 骨架屏框架 skeletonizer

很久没有更新过小技巧系列,今天简单介绍一个非常好用的骨架屏框架 skeletonizer ,它主要是通过将你现有的布局自动简化为简单的骨架,并添加动画效果来实现加载过程,而使用成本则是简单的添加一个 Skeletonizer 作为 parent &…

基于SpringBoot的宠物用品系统【2026最新】

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

MongoDB 分片集群修改管理员密码

记得关注一下博主,博主每天都会更新IT技术,让你有意想不到的小收获哦^_^ 文章目录*记得关注一下博主,博主每天都会更新IT技术,让你有意想不到的小收获哦^_^*一、注释MongoDB分片集群认证参数(三台主机都要操作&#xf…

C++函数重载与引用详解

一、函数重载:同名函数的 “差异化生存”​1. 概念定义​函数重载(Function Overloading)是 C 的重要特性,指在同一作用域内,允许存在多个同名函数,但要求这些函数的参数列表必须不同。(参数个数…

2025-08-17 李沐深度学习16——目标检测

文章目录1 介绍1.1 实际应用1.2 边界框1.3 数据集2 锚框2.1 什么是锚框2.2 交并比2.3 分配标签2.4 非极大值抑制3 经典目标检测网络3.1 R-CNN3.1.1 R-CNN (原始版本)3.1.2 Fast R-CNN3.1.3 Faster R-CNN3.1.4 Mask R-CNN3.2 单阶段检测器:SSD 和 YOLO3.2.1 SSD (Sin…

Bluedroid vs NimBLE

🔹 对比:Bluedroid vs NimBLE 1. 协议栈体积 & 内存占用 Bluedroid:体积大,RAM 占用也大(几十 KB 到上百 KB)。NimBLE:轻量级,内存占用大概是 Bluedroid 的一半甚至更少。 &…

(纯新手教学)计算机视觉(opencv)实战八——四种边缘检测详解:Sobel、Scharr、Laplacian、Canny

边缘检测详解:Sobel、Scharr、Laplacian、Canny边缘检测是图像处理和计算机视觉中的重要步骤,主要用于发现图像中亮度变化剧烈的区域,即物体的轮廓、边界或纹理特征。OpenCV 提供了多种常用的边缘检测算子,本教程将通过四种方法带…

PyTorch 环境配置

目录一、安装 CUDA二、安装 PyTorch1. 创建虚拟环境2. 安装 PyTorch三、在 PyCharm 上创建一个 PyTorch 项目参考文章: 【2025年最新PyTorch环境配置保姆级教程(附安装包)】 【超详细 CUDA 安装与卸载教程(图文教程)】…

鸿蒙中冷启动分析:Launch分析

启动的分类(热身环节) 启动动类型触发条件系统开销 & 速度主要优化方向冷启动应用进程不存在(首次启动或进程被杀后启动)最高,需创建进程、加载资源、初始化所有组件主要优化目标,减少主线程任务&…

告别盲目排查,PolarDB+DAS Agent智能运维新突破

1.概述 周五下午6点正准备下班,数据库CPU突然爆满,业务告警响成一片,DBA却要手动翻查CPU/内存/负载等多个监控指标,还要查询是否有新增慢SQL,死锁等问题?” 这可能是数据库DBA最闹心的场景了,…

Linux------《零基础到联网:CentOS 7 在 VMware Workstation 中的全流程安装与 NAT 网络配置实战》

(一)Linux的发行版Centos安装与配置 下载Linux发行版本Centos:centos-7-isos-x86_64安装包下载_开源镜像站-阿里云点击CentOS-7-x86_64-DVD-2009.torrent ,CentOS-7-x86_64-DVD-2009.torrent是官方提供的 BT 种子文件(176.1 KB&a…