figlet 在鸿蒙PC上的构建与适配

目录


工具简介

figlet(Frank, Ian & Glenn's Letters)是一个用 C 语言开发的命令行工具,用于将普通文本转换为大型 ASCII 艺术字符。它可以将简单的文本转换为美观的大字符,非常适合用于终端横幅、邮件签名、文档装饰等场景。

什么是 figlet?

figlet 是一个文本艺术生成工具,它使用特殊的字体文件(.flf 格式)将普通文本转换为大型 ASCII 艺术字符。这些字符由普通的屏幕字符组成,可以创建出各种风格的文字效果。

示例输出

复制代码
 _   _      _ _                             _     _ _ 
| | | | ___| | | ___    __      _____  _ __| | __| | |
| |_| |/ _ \ | |/ _ \   \ \ /\ / / _ \| '__| |/ _` | |
|  _  |  __/ | | (_) |   \ V  V / (_) | |  | | (_| |_|
|_| |_|\___|_|_|\___( )   \_/\_/ \___/|_|  |_|\__,_(_)
                    |/                                

核心特性

  1. 多种字体风格

    • 内置多种字体风格(standard、slant、shadow、script 等)
    • 支持自定义字体文件
    • 字体文件格式简单,易于创建和修改
  2. 字符处理能力

    • Kern(字距调整):调整字符间距
    • Smush(字符合并):将字符合并在一起
    • 支持多种字符布局模式
  3. 多语言支持

    • 支持多种字符编码(UTF-8、ISO-8859 系列等)
    • 支持非拉丁字符集(希伯来语、西里尔语、日语等)
    • 支持从右到左的文字(如希伯来语)
  4. 灵活的配置

    • 可配置默认字体目录
    • 可配置默认字体文件
    • 支持命令行参数自定义
  5. 跨平台支持

    • 支持 Unix/Linux、macOS、Windows
    • 单一可执行文件,依赖少
    • 易于编译和部署

开发语言与设计优势

C 语言的优势

  • 性能:编译后的二进制文件运行速度快,资源占用低
  • 可移植性:C 语言标准广泛支持,易于跨平台编译
  • 轻量级:单一可执行文件,不需要额外的运行时库
  • 简单直接:代码结构清晰,易于理解和维护

设计优势

  • 零依赖:除了标准 C 库外,不需要其他依赖
  • 快速启动:启动速度快,适合频繁使用
  • 资源占用低:内存和 CPU 占用小
  • 易于集成:可以轻松集成到脚本和工具链中

核心用途与场景

基本用法

1. 基本文本转换
bash 复制代码
# 转换文本为 ASCII 艺术
figlet "Hello World"

# 输出示例:
#  _   _      _ _                             _     _ _ 
# | | | | ___| | | ___    __      _____  _ __| | __| | |
# | |_| |/ _ \ | |/ _ \   \ \ /\ / / _ \| '__| |/ _` | |
# |  _  |  __/ | | (_) |   \ V  V / (_) | |  | | (_| |_|
# |_| |_|\___|_|_|\___( )   \_/\_/ \___/|_|  |_|\__,_(_)
#                     |/                                
2. 使用不同字体
bash 复制代码
# 使用 slant 字体
figlet -f slant "Hello"

# 使用 shadow 字体
figlet -f shadow "Hello"

# 使用 script 字体
figlet -f script "Hello"

# 使用 block 字体
figlet -f block "Hello"
3. 文本对齐
bash 复制代码
# 居中对齐
figlet -c "Centered Text"

# 左对齐(默认)
figlet -l "Left Aligned"

# 右对齐
figlet -r "Right Aligned"
4. 字符布局模式
bash 复制代码
# 使用 kern 模式(字距调整)
figlet -k "Kerned Text"

# 使用 smush 模式(字符合并)
figlet -s "Smushed Text"

# 使用 full width 模式
figlet -w 80 "Full Width"
5. 从文件读取
bash 复制代码
# 从文件读取文本
figlet < input.txt

# 管道输入
echo "Hello World" | figlet

# 多行文本
cat multiline.txt | figlet -p

实际应用场景

场景 1:终端横幅
bash 复制代码
# 创建登录横幅
figlet -f big "Welcome" > /etc/motd

# 创建脚本标题
#!/bin/bash
figlet -f standard "My Script"
echo "Starting script..."
场景 2:文档装饰
bash 复制代码
# 生成文档标题
figlet -f shadow "Chapter 1" > chapter1_title.txt

# 创建 README 标题
figlet -f standard "My Project" >> README.md
场景 3:邮件签名
bash 复制代码
# 创建邮件签名
figlet -f script "Best Regards" > signature.txt

# 添加到邮件
cat signature.txt | mail -s "Subject" recipient@example.com
场景 4:脚本输出美化
bash 复制代码
#!/bin/bash
# 显示脚本标题
figlet -f slant "Backup Script"
echo "Starting backup..."

# 显示进度
figlet -f small "Progress: 50%"
场景 5:配合其他工具
bash 复制代码
# 配合 fortune
fortune | figlet

# 配合 date
date | figlet -f digital

# 配合系统信息
hostname | figlet -f big

高级用法

1. 自定义字体目录
bash 复制代码
# 使用自定义字体目录
figlet -d /path/to/fonts -f custom_font "Text"

# 设置环境变量
export FIGLET_FONT_DIR=/path/to/fonts
figlet -f custom_font "Text"
2. 输出到文件
bash 复制代码
# 保存输出到文件
figlet "Hello" > output.txt

# 追加到文件
figlet "World" >> output.txt

# 格式化输出
figlet -c -f shadow "Title" | tee title.txt
3. 批量处理
bash 复制代码
# 处理多个文本
for word in "Hello" "World" "Figlet"; do
    figlet -f slant "$word"
done

# 处理文件中的每一行
while IFS= read -r line; do
    figlet "$line"
done < input.txt

常见报错与解决方案

问题 1:安装失败

错误信息

复制代码
make: *** No rule to make target `install'. Stop.

原因:Makefile 未正确配置或缺少必要的变量。

解决方案

bash 复制代码
# 检查 Makefile 是否存在
ls -la Makefile

# 查看 Makefile 配置
grep -E "prefix|BINDIR|MANDIR|DEFAULTFONTDIR" Makefile

# 手动设置变量并安装
make install DESTDIR=/path/to/install prefix=/usr

问题 2:字体文件未找到

错误信息

复制代码
figlet: can't open font file /usr/local/share/figlet/standard.flf

原因:字体文件未安装或路径配置错误。

解决方案

bash 复制代码
# 检查字体文件是否存在
ls -la /usr/local/share/figlet/

# 使用 -d 选项指定字体目录
figlet -d /path/to/fonts "Text"

# 或者设置环境变量
export FIGLET_FONT_DIR=/path/to/fonts
figlet "Text"

# 重新安装字体文件
make install DESTDIR=/path/to/install prefix=/usr

问题 3:权限错误

错误信息

复制代码
mkdir: /usr/local/man: Permission denied

原因:尝试安装到系统目录,需要 root 权限。

解决方案

bash 复制代码
# 使用 DESTDIR 安装到指定目录
make install DESTDIR=/path/to/install prefix=/usr

# 或者使用 sudo(不推荐用于交叉编译)
sudo make install

# 或者修改 Makefile 中的 prefix
make install prefix=/home/user/local

问题 4:编译错误

错误信息

复制代码
figlet.c:1234:5: error: expected ';' before '}'

原因:源代码语法错误或编译器版本不兼容。

解决方案

bash 复制代码
# 检查编译器版本
gcc --version

# 使用兼容的编译器选项
make CC=gcc CFLAGS="-g -O2 -Wall"

# 清理并重新编译
make clean
make

问题 5:字符显示异常

错误信息:终端中显示的字符乱码或格式不正确。

原因:终端编码设置不正确或字体文件损坏。

解决方案

bash 复制代码
# 检查终端编码
echo $LANG

# 设置 UTF-8 编码
export LANG=en_US.UTF-8

# 使用 UTF-8 字体
figlet -f utf8 "Text"

# 检查字体文件
chkfont /path/to/font.flf

问题 6:字体文件格式错误

错误信息

复制代码
figlet: error reading font file

原因:字体文件格式不正确或损坏。

解决方案

bash 复制代码
# 使用 chkfont 检查字体文件
chkfont font.flf

# 重新下载字体文件
# 或使用标准字体
figlet -f standard "Text"

适配开源鸿蒙 PC 端的要点

系统环境差异

1. 包管理器

HarmonyOS PC 使用 HNP(HarmonyOS Native Package)作为包管理格式,而不是传统的 aptyumbrew

影响

  • 需要创建 HNP 包配置文件(hnp.json
  • 安装路径遵循 HNP 规范
  • 包管理命令不同
2. 依赖库

figlet 使用标准 C 库,HarmonyOS 使用 musl libc:

  • 链接方式:可以使用静态链接或 musl 兼容的动态链接
  • 系统调用:标准 C 库函数应该兼容
  • 库依赖:figlet 不依赖外部库,只需要标准 C 库
3. 字体文件路径

HarmonyOS 的文件系统结构可能与标准 Linux 不同:

  • 字体目录 :需要正确设置 DEFAULTFONTDIR
  • 路径格式:确保路径格式正确
  • 权限:确保字体文件可读

Makefile 构建系统适配

1. 编译器配置

需要配置 Makefile 使用 HarmonyOS SDK 的编译器:

bash 复制代码
make CC="${CC}" CFLAGS="${CFLAGS}" LD="${CC}" LDFLAGS="${LDFLAGS}"

关键变量

  • CC: C 编译器(HarmonyOS SDK 的 clang)
  • CFLAGS: 编译标志(包含交叉编译选项)
  • LD: 链接器(通常与 CC 相同)
  • LDFLAGS: 链接标志
2. 安装路径配置

使用 DESTDIRprefix 控制安装路径:

bash 复制代码
export DESTDIR=${TREE_INSTALL_HNP_PATH}
export prefix=/usr
make install

路径结构

  • 二进制文件:${DESTDIR}${prefix}/bin
  • 手册页:${DESTDIR}${prefix}/share/man/man6
  • 字体文件:${DESTDIR}${prefix}/share/figlet
3. 字体目录配置

Makefile 在编译时会硬编码 DEFAULTFONTDIR

makefile 复制代码
DEFAULTFONTDIR = $(prefix)/share/figlet

这会在编译时嵌入到二进制文件中,所以需要确保:

  • 编译时 prefix 设置为 /usr
  • 安装时字体文件放在正确的位置

关键适配要点总结

  1. 编译器配置:使用 HarmonyOS SDK 的编译器
  2. 安装路径 :使用 DESTDIRprefix 控制
  3. 字体路径:确保字体文件安装在正确位置
  4. 包格式:使用 HNP 格式打包
  5. 路径规范:遵循 HNP 规范

鸿蒙适配中的报错解决过程

报错 1:构建系统识别错误

错误信息

复制代码
make: *** No rule to make target `clean'. Stop.
make: *** No targets specified and no makefile found. Stop.

原因分析

原始的构建脚本可能没有正确设置工作目录或 Makefile 不存在。

解决过程

  1. 检查 Makefile

    bash 复制代码
    ls -la Makefile
    # 确认 Makefile 存在
  2. 检查构建脚本

    • 确保在正确的目录下运行
    • 确保设置了正确的环境变量
  3. 修改构建脚本

    • 添加清理步骤的错误处理
    • 确保在构建前清理旧文件

最终解决方案

bash 复制代码
# 清理之前的构建
make clean 2>/dev/null || true

# 构建
make CC="${CC}" CFLAGS="${CFLAGS}" LD="${CC}" LDFLAGS="${LDFLAGS}"

报错 2:安装路径权限错误

错误信息

复制代码
mkdir: /usr/local/man: Permission denied
make: *** [install] Error 1

原因分析
make install 尝试安装到系统目录 /usr/local/man,需要 root 权限。在交叉编译时,不应该安装到系统目录。

排查思路

  1. 检查 Makefile 的 install 目标

    bash 复制代码
    grep -A 10 "^install:" Makefile
    # 发现使用了 DESTDIR 和 prefix
  2. 检查环境变量

    bash 复制代码
    echo $DESTDIR
    echo $prefix
    # 发现未设置或设置不正确
  3. 查看 Makefile 变量定义

    makefile 复制代码
    prefix = /usr/local
    BINDIR = $(prefix)/bin
    MANDIR = $(prefix)/man

解决方案

设置 DESTDIRprefix 环境变量:

bash 复制代码
# 设置安装路径变量
export DESTDIR=${TREE_INSTALL_HNP_PATH}
export prefix=/usr

# 使用 DESTDIR 安装
make install

工作原理

  • DESTDIR 是安装的根目录
  • prefix 是相对于 DESTDIR 的路径
  • 最终安装路径 = ${DESTDIR}${prefix} = ${TREE_INSTALL_HNP_PATH}/usr
  • Makefile 会创建 ${DESTDIR}${prefix}/bin${DESTDIR}${prefix}/share/man/man6 等目录

报错 3:安装目录不存在

错误信息

复制代码
cp: directory /Users/jianguo/HarmonyOSPC/build/data/service/hnp//figlet.org/figlet_2.2.5 does not exist
Error: Failed to copy hnp.json

原因分析

安装目录不存在,make install 可能失败或目录未创建。

解决方案

bash 复制代码
# 创建安装目录
mkdir -p ${TREE_INSTALL_HNP_PATH}/usr/bin
mkdir -p ${TREE_INSTALL_HNP_PATH}/usr/share/man/man6
mkdir -p ${TREE_INSTALL_HNP_PATH}/usr/share/figlet

报错 4:编译器警告

错误信息

复制代码
warning: a function definition without a prototype is deprecated in all versions of C

原因分析

figlet 使用旧的 C 函数定义风格(K&R 风格),现代编译器会发出警告。

解决方案

这些警告不影响编译,但可以通过以下方式处理:

bash 复制代码
# 在 CFLAGS 中添加选项忽略警告
CFLAGS="${CFLAGS} -Wno-deprecated-non-prototype"

# 或者保持原样(警告不影响功能)

适配过程中的关键决策

  1. 使用 DESTDIR 和 prefix:解决安装路径问题
  2. 提前创建目录:确保安装目录存在
  3. 传递编译器参数:确保使用正确的工具链
  4. 错误处理完善:添加详细的错误检查和提示

构建脚本详解

build_ohos.sh 完整代码

bash 复制代码
export TREE_INSTALL_HNP_PATH=${HNP_PUBLIC_PATH}/figlet.org/figlet_2.2.5

# 创建安装目录
mkdir -p ${TREE_INSTALL_HNP_PATH}/usr/bin
mkdir -p ${TREE_INSTALL_HNP_PATH}/usr/share/man/man6
mkdir -p ${TREE_INSTALL_HNP_PATH}/usr/share/figlet

# 清理之前的构建
echo "Cleaning previous build..."
make clean 2>/dev/null || true

# 构建
echo "Building figlet..."
make CC="${CC}" CFLAGS="${CFLAGS}" LD="${CC}" LDFLAGS="${LDFLAGS}" VERBOSE=1 || {
    echo "Error: Build failed"
    exit 1
}

# 安装
echo "Installing figlet..."
# 设置安装路径变量
export DESTDIR=${TREE_INSTALL_HNP_PATH}
export prefix=/usr
# 使用 DESTDIR 安装,这样会安装到 ${DESTDIR}${prefix} = ${TREE_INSTALL_HNP_PATH}/usr
make install || {
    echo "Error: Install failed"
    exit 1
}

# 复制 hnp.json
cp hnp.json ${TREE_INSTALL_HNP_PATH}/ || {
    echo "Error: Failed to copy hnp.json"
    exit 1
}

# 打包
echo "Packaging..."
pushd ${TREE_INSTALL_HNP_PATH}/../
    ${HNP_TOOL} pack -i ${TREE_INSTALL_HNP_PATH} -o ${ARCHIVE_PATH}/ || {
        echo "Error: HNP pack failed"
        popd
        exit 1
    }
    tar -zvcf ${ARCHIVE_PATH}/ohos_figlet_2.2.5.tar.gz figlet_2.2.5/ || {
        echo "Error: Tar packaging failed"
        popd
        exit 1
    }
popd

# 打印构建结果
echo ""
echo "=========================================="
echo "Build completed successfully!"
echo "=========================================="
echo "HNP Package: ${ARCHIVE_PATH}/figlet.org_figlet_2.2.5.hnp"
echo "Tar Archive: ${ARCHIVE_PATH}/ohos_figlet_2.2.5.tar.gz"
echo "Installation Path: ${TREE_INSTALL_HNP_PATH}"
echo "=========================================="
echo ""

脚本关键点解析

1. 安装目录创建

作用:确保安装目录存在,避免安装失败。

实现

bash 复制代码
mkdir -p ${TREE_INSTALL_HNP_PATH}/usr/bin
mkdir -p ${TREE_INSTALL_HNP_PATH}/usr/share/man/man6
mkdir -p ${TREE_INSTALL_HNP_PATH}/usr/share/figlet
2. 编译器配置

作用:使用 HarmonyOS SDK 的编译器进行交叉编译。

实现

bash 复制代码
make CC="${CC}" CFLAGS="${CFLAGS}" LD="${CC}" LDFLAGS="${LDFLAGS}"
3. 安装路径控制

作用 :使用 DESTDIRprefix 控制安装路径。

实现

bash 复制代码
export DESTDIR=${TREE_INSTALL_HNP_PATH}
export prefix=/usr
make install

路径映射

  • BINDIR = $(prefix)/bin${DESTDIR}/usr/bin
  • MANDIR = $(prefix)/man${DESTDIR}/usr/share/man
  • DEFAULTFONTDIR = $(prefix)/share/figlet${DESTDIR}/usr/share/figlet

HNP 包配置

hnp.json

json 复制代码
{
    "type": "hnp-config",
    "name": "figlet",
    "version": "2.2.5",
    "install": {}
}

安装目录结构

复制代码
figlet_2.2.5/
├── usr/
│   ├── bin/
│   │   ├── figlet              # 主程序
│   │   ├── chkfont             # 字体检查工具
│   │   ├── figlist             # 字体列表脚本
│   │   └── showfigfonts        # 字体预览脚本
│   ├── share/
│   │   ├── man/
│   │   │   └── man6/
│   │   │       ├── figlet.6    # 主程序手册
│   │   │       ├── chkfont.6   # chkfont 手册
│   │   │       ├── figlist.6   # figlist 手册
│   │   │       └── showfigfonts.6  # showfigfonts 手册
│   │   └── figlet/
│   │       ├── *.flf           # 字体文件
│   │       └── *.flc           # 控制文件
└── hnp.json                     # HNP 包配置

构建结果

构建成功后,会生成以下文件:

  1. HNP 包figlet.org_figlet_2.2.5.hnp

    • HarmonyOS 原生包格式
    • 可以直接安装到 HarmonyOS 设备
  2. Tar 归档ohos_figlet_2.2.5.tar.gz

    • 压缩的 tar 归档
    • 包含完整的安装目录结构

构建输出示例

复制代码
==========================================
Build completed successfully!
==========================================
HNP Package: /path/to/archive/figlet.org_figlet_2.2.5.hnp
Tar Archive: /path/to/archive/ohos_figlet_2.2.5.tar.gz
Installation Path: /path/to/data/service/hnp/figlet.org/figlet_2.2.5
==========================================

仓库地址与安装方式

仓库地址

HarmonyOS 适配版本

安装方式

Linux(通用)

使用包管理器

bash 复制代码
# Debian/Ubuntu
sudo apt install figlet

# Fedora
sudo dnf install figlet

# Arch Linux
sudo pacman -S figlet

# Alpine Linux
apk add figlet

从源码编译

bash 复制代码
# 1. 下载源码
wget http://www.figlet.org/pub/figlet/program/unix/figlet-2.2.5.tar.gz
tar -xzf figlet-2.2.5.tar.gz
cd figlet-2.2.5

# 2. 编辑 Makefile(可选)
# 设置 DEFAULTFONTDIR 和 DEFAULTFONTFILE

# 3. 编译
make

# 4. 安装
sudo make install
macOS

使用 Homebrew

bash 复制代码
brew install figlet

使用 MacPorts

bash 复制代码
sudo port install figlet

从源码编译

bash 复制代码
# 与 Linux 相同
make
sudo make install
Windows

使用包管理器

bash 复制代码
# Chocolatey
choco install figlet

# Scoop
scoop install figlet

从源码编译

bash 复制代码
# 需要 MinGW 或 Visual Studio
# 参考 Makefile.tc(Turbo C 版本)
开源鸿蒙 PC

使用 HNP 包

bash 复制代码
# 安装 HNP 包
hnp install figlet.org_figlet_2.2.5.hnp

# 或使用 tar 归档
tar -xzf ohos_figlet_2.2.5.tar.gz
# 手动复制到系统路径

从源码交叉编译

bash 复制代码
# 1. 克隆仓库
git clone https://gitcode.com/nutpi/figlet.git
cd figlet
git checkout 2.2.5_ohos

# 2. 设置 HarmonyOS SDK 路径
export OHOS_SDK=/path/to/ohosdk

# 3. 运行构建脚本
./build_ohos.sh

# 4. 安装生成的 HNP 包
hnp install figlet.org_figlet_2.2.5.hnp

验证安装

bash 复制代码
# 检查版本
figlet -v

# 测试基本功能
figlet "Hello"

# 列出可用字体
figlist

# 查看字体示例
showfigfonts

总结

适配要点

  1. 构建系统:使用 Makefile,需要正确配置编译器
  2. 安装路径 :使用 DESTDIRprefix 控制
  3. 字体路径:确保字体文件安装在正确位置
  4. 目录创建:提前创建安装目录
  5. 包格式:遵循 HNP 规范

关键决策

  1. DESTDIR 和 prefix:解决安装路径问题
  2. 提前创建目录:避免安装失败
  3. 编译器参数传递:确保使用正确的工具链

优势

  • 零运行时依赖:单一可执行文件,部署简单
  • 高性能:C 语言编写,运行速度快
  • 功能强大:支持多种字体和字符布局模式
  • 易于集成:可以轻松集成到脚本和工具链中

适用场景

  • 终端横幅和装饰
  • 文档标题生成
  • 邮件签名创建
  • 脚本输出美化
  • ASCII 艺术创作

FAQ

Q1: figlet 和 toilet 有什么区别?

A: figlet 和 toilet 都是 ASCII 艺术生成工具,主要区别:

  • figlet 更轻量,功能更基础
  • toilet 支持更多字体格式(包括 TLF)
  • figlet 使用 .flf 字体格式
  • toilet 使用 .tlf 字体格式
  • figlet 是更老的工具,兼容性更好

Q2: 如何创建自定义字体?

A:

  1. 参考 figfont.txt 了解字体格式
  2. 使用文本编辑器创建 .flf 文件
  3. 使用 chkfont 检查字体文件
  4. 将字体文件放在字体目录中

Q3: 字体文件应该放在哪里?

A:

  • 默认位置:/usr/local/share/figlet//usr/share/figlet/
  • 自定义位置:使用 -d 选项指定
  • 环境变量:设置 FIGLET_FONT_DIR

Q4: 如何在 HarmonyOS 上使用 figlet?

A:

  1. 安装 HNP 包:hnp install figlet.org_figlet_2.2.5.hnp
  2. 或从源码交叉编译
  3. 使用方式与 Linux 相同

Q5: 为什么需要设置 DESTDIR 和 prefix?

A:

  • DESTDIR 用于指定安装根目录(用于打包)
  • prefix 用于指定相对于 DESTDIR 的路径
  • 这样可以安装到构建目录而不是系统目录

Q6: 如何改变默认字体?

A:

bash 复制代码
# 使用 -f 选项
figlet -f slant "Text"

# 或修改 Makefile 中的 DEFAULTFONTFILE
# 然后重新编译

Q7: 可以处理多行文本吗?

A: 可以:

bash 复制代码
# 使用 -p 选项(段落模式)
figlet -p < multiline.txt

# 或逐行处理
while IFS= read -r line; do
    figlet "$line"
done < input.txt

Q8: 如何输出到文件?

A:

bash 复制代码
# 重定向输出
figlet "Text" > output.txt

# 追加到文件
figlet "Text" >> output.txt

# 使用 tee 同时显示和保存
figlet "Text" | tee output.txt

相关链接


相关推荐
m0_685535083 小时前
华为光学工程师笔试真题(含答案与深度解析)
华为·光学·光学设计·光学工程·镜头设计
lqj_本人3 小时前
鸿蒙原生与Qt混合开发:性能优化与资源管理
qt·harmonyos
lqj_本人4 小时前
鸿蒙Qt字体实战:消灭“豆腐块“乱码与自定义字体加载
qt·华为·harmonyos
大侠课堂4 小时前
海康大华大疆华为中兴追觅经典面试题200道完整版
华为
爱笑的眼睛114 小时前
深入探索HarmonyOS中RichText组件的HTML渲染机制
华为·harmonyos
全栈陈序员5 小时前
Whois 工具在 HarmonyOS PC 上的交叉编译实践
华为·harmonyos
空白诗5 小时前
tokei 在鸿蒙PC上的构建与适配
后端·华为·rust·harmonyos
汉堡黄6 小时前
鸿蒙开发:案例集合Tabs:分段按钮组件
harmonyos
哈__6 小时前
exa 在 HarmonyOS 上的构建与适配
elasticsearch·华为·harmonyos