From 7c8344b2a9768ee0866e6b5329a0f0d594a948b3 Mon Sep 17 00:00:00 2001 From: ljlvink Date: Sun, 8 Mar 2026 01:31:48 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=9B=B4=E6=96=B0=EF=BC=9A=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0OHOS=E5=B9=B3=E5=8F=B0=E7=BC=96=E8=AF=91=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/SUMMARY.md | 1 + src/phira_build_guide/OpenHarmony.md | 90 ++++++++++++++++++++++++++++ src/phira_build_guide/README.md | 1 + 3 files changed, 92 insertions(+) create mode 100644 src/phira_build_guide/OpenHarmony.md diff --git a/src/SUMMARY.md b/src/SUMMARY.md index a64bd8a..92c80a5 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -92,6 +92,7 @@ - [Linux](./phira_build_guide/Linux.md) - [macOS](./phira_build_guide/macOS.md) - [Android](./phira_build_guide/Android.md) + - [OpenHarmony](./phira_build_guide/OpenHarmony.md) - [糗事集锦](./dev-incident/README.md) - [长风的柳絮](./dev-incident/长风的柳絮.md) diff --git a/src/phira_build_guide/OpenHarmony.md b/src/phira_build_guide/OpenHarmony.md new file mode 100644 index 0000000..839da17 --- /dev/null +++ b/src/phira_build_guide/OpenHarmony.md @@ -0,0 +1,90 @@ +# OpenHarmony + +## 准备阶段 + +1. 首先需要新增ohos平台,如果你没有安装`rust`,如果没有安装,请点击 [这里](./cargo.md) 按步骤安装构建工具 + +``` +rustup target add aarch64-unknown-linux-ohos +rustup target add armv7-unknown-linux-ohos # 理论可以不加 +rustup target add x86_64-unknown-linux-ohos # 理论可以不加,如果不在x86的模拟器运行 +``` + +2. 你只需要下载最新的 `DevEco-Studio` 然后安装对应的 `NDK` 即可. 你可以在 [Deveco Studio (windows/macos平台)](https://developer.huawei.com/consumer/cn/deveco-studio/)或者配置[Command Line Tools(推荐Linux平台)](https://developer.huawei.com/consumer/cn/download/command-line-tools-for-hmos) 找到并且下载。 + +下载完成之后,你需要为系统设置一个环境变量来帮助我们构建原生模块。假设你安装的 SDK 路径为 /path/Sdk,那么我们只需要设置如下的环境变量即可: + +``` +# 一般来说 SDK 目录下面都有多个版本,选择你自己需要使用的版本即可。 +# 对于 unix 系统的用户来说请务必使用 export 否则会导致读取不到环境变量 +export OHOS_NDK_HOME=/path/Sdk/9/ + +# 对于 5.0.0 release 的 IDE 来说他的路径示例如下所示: +export OHOS_NDK_HOME=/Applications/DevEco-Studio.app/Contents/sdk/default/openharmony +``` + +3. 安装ohrs + +``` +cargo install ohrs +``` + +## 开始构建 + +1. 首先克隆代码。 + +``` +https://github.com/teamFlos/phira +https://github.com/teamFlos/phira-ohos +``` + +2. 静态库文件,您可以 [直接下载](https://teamflos.github.io/phira-docs/phira_build_guide/prpr-avc.zip) 或者在 [缓存站](https://www.nuanr-mxi.com/prpr-avc.zip) 下载静态库文件,下载完成后直接解压到代码根目录下,如果提示覆盖文件,请点击覆盖。 + +3. 添加`config.toml`,配置cmake位置。 + +针对 `Linux` 平台 + +`.cargo/config.toml` + +``` +[env] +CMAKE = "/你的ohos sdk位置/command-line-tools/sdk/default/openharmony/native/build-tools/cmake/bin/cmake" +CMAKE_TOOLCHAIN_FILE_aarch64-unknown-linux-ohos = "/你的ohos sdk位置/command-line-tools/sdk/default/openharmony/native/build/cmake/ohos.toolchain.cmake" +CMAKE_GENERATOR = "Ninja" +CMAKE_MAKE_PROGRAM = "/你的ohos sdk位置/command-line-tools/sdk/default/openharmony/native/build-tools/cmake/bin/ninja" +OHOS_NDK_HOME = "/你的ohos sdk位置/command-line-tools/sdk/default/openharmony" +``` + +针对 `Windows` 平台,你需要在项目的`.cargo`文件夹中新建`cmake-wrapper.cmd` + +`.cargo/config.toml` + +``` +[env] +CMAKE = "你的项目位置/.cargo/cmake-wrapper.cmd" +CMAKE_TOOLCHAIN_FILE_aarch64-unknown-linux-ohos = "D:/你的ohos sdk位置/default/openharmony/native/build/cmake/ohos.toolchain.cmake" +CMAKE_GENERATOR = "Ninja" +CMAKE_MAKE_PROGRAM = "D:/你的ohos sdk位置/default/openharmony/native/build-tools/cmake/bin/ninja.exe" +``` + +4. 开始构建 + +``` +phira>cd phira #这里要进入到phira文件夹。否则会没有产物输出 +phira/phira>ohrs build --release --arch aarch #可以不加--arch 参数,即默认在x86 armv7 arm64编译,但目前鸿蒙设备均为arm64 +``` + +5. 构建成功之后会在phira/dist找到`libphira.so` + +6. 代码目录下的资源文件并不完整,如果您发现主程序闪退,您可以前往 [release](https://github.com/TeamFlos/phira/releases)页面下载任意版本,获取缺失的资源文件,将缺失的资源文件放入 `entry\src\main\resources\resfile\assets` 中。 + +7. 进入`phira-ohos`文件夹中,将`build-profile-nosigncfg.json5`改成`build-profile.json5`,然后打开`Deveco Studio`。连接设备,在`Project Structure`中找到`Signing configs`选择自动生成签名。 + +复制生成的`libphira.so`到`entry\libs\arm64-v8a`文件夹中。点击编译即可在ohos设备运行。 + + +## 常见问题 + +如果出现非常奇怪的编译报错,请考虑移步到~~arm64的MacOS~~或者`WSL`平台编译。 + +Deveco Studio并没有Linux原生版本。 \ No newline at end of file diff --git a/src/phira_build_guide/README.md b/src/phira_build_guide/README.md index c27e4bd..aff37ae 100644 --- a/src/phira_build_guide/README.md +++ b/src/phira_build_guide/README.md @@ -4,3 +4,4 @@ Windows MSVC:[here](./Windows_Msvc.md) Linux:[here](./Linux.md) macOS:[here](./macOS.md) Android:[here](./Android.md) +OpenHarmony:[here](./OpenHarmony.md) From fab0bf009c3422940acc20b3a92cf2c3f6f191b5 Mon Sep 17 00:00:00 2001 From: ljlvink Date: Sun, 8 Mar 2026 01:38:34 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=9B=B4=E6=96=B0=EF=BC=9A=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E6=8E=92=E7=89=88=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/phira_build_guide/OpenHarmony.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/phira_build_guide/OpenHarmony.md b/src/phira_build_guide/OpenHarmony.md index 839da17..faf4ce5 100644 --- a/src/phira_build_guide/OpenHarmony.md +++ b/src/phira_build_guide/OpenHarmony.md @@ -2,7 +2,9 @@ ## 准备阶段 -1. 首先需要新增ohos平台,如果你没有安装`rust`,如果没有安装,请点击 [这里](./cargo.md) 按步骤安装构建工具 +1. 首先需要新增ohos平台,如果你没有安装`cargo`,如果没有安装,请点击 [这里]([./cargo.md](https://rust-lang.org/learn/get-started/)) 按系统安装构建工具。 + +更多内容可以参考 [ohos-rs](https://ohos.rs/) ``` rustup target add aarch64-unknown-linux-ohos @@ -40,7 +42,7 @@ https://github.com/teamFlos/phira-ohos 2. 静态库文件,您可以 [直接下载](https://teamflos.github.io/phira-docs/phira_build_guide/prpr-avc.zip) 或者在 [缓存站](https://www.nuanr-mxi.com/prpr-avc.zip) 下载静态库文件,下载完成后直接解压到代码根目录下,如果提示覆盖文件,请点击覆盖。 -3. 添加`config.toml`,配置cmake位置。 +3. 添加 `config.toml` ,配置cmake位置。 针对 `Linux` 平台 @@ -55,7 +57,7 @@ CMAKE_MAKE_PROGRAM = "/你的ohos sdk位置/command-line-tools/sdk/default/openh OHOS_NDK_HOME = "/你的ohos sdk位置/command-line-tools/sdk/default/openharmony" ``` -针对 `Windows` 平台,你需要在项目的`.cargo`文件夹中新建`cmake-wrapper.cmd` +针对 `Windows` 平台,你需要在项目的 `.cargo` 文件夹中新建 `cmake-wrapper.cmd` `.cargo/config.toml` @@ -76,15 +78,15 @@ phira/phira>ohrs build --release --arch aarch #可以不加--arch 参数,即 5. 构建成功之后会在phira/dist找到`libphira.so` -6. 代码目录下的资源文件并不完整,如果您发现主程序闪退,您可以前往 [release](https://github.com/TeamFlos/phira/releases)页面下载任意版本,获取缺失的资源文件,将缺失的资源文件放入 `entry\src\main\resources\resfile\assets` 中。 +6. `phira-ohos` 代码目录下不包含资源文件,如果您发现主程序黑屏,您可以前往 [release](https://github.com/TeamFlos/phira/releases)页面下载任意版本,获取缺失的资源文件,将缺失的资源文件放入 `entry\src\main\resources\resfile\assets` 中。 -7. 进入`phira-ohos`文件夹中,将`build-profile-nosigncfg.json5`改成`build-profile.json5`,然后打开`Deveco Studio`。连接设备,在`Project Structure`中找到`Signing configs`选择自动生成签名。 +7. 进入 `phira-ohos` 文件夹中,将 `build-profile-nosigncfg.json5` 改成 `build-profile.json5` ,然后打开 `Deveco Studio` 。连接设备,在 `Project Structure` 中找到 `Signing configs` 选择自动生成签名。 -复制生成的`libphira.so`到`entry\libs\arm64-v8a`文件夹中。点击编译即可在ohos设备运行。 +复制生成的 `libphira.so` 到 `entry\libs\arm64-v8a`文件夹中。点击编译即可在ohos设备运行。 ## 常见问题 -如果出现非常奇怪的编译报错,请考虑移步到~~arm64的MacOS~~或者`WSL`平台编译。 +如果出现非常奇怪的编译报错,请考虑移步到~~arm64的MacOS~~或者 `WSL` 平台编译。 Deveco Studio并没有Linux原生版本。 \ No newline at end of file From f49bd3a704ca083acdd283fbd4d0d7f883ee70ea Mon Sep 17 00:00:00 2001 From: ljlvink Date: Mon, 9 Mar 2026 12:18:01 +0800 Subject: [PATCH 3/4] fix review --- src/phira_build_guide/OpenHarmony.md | 52 +++++++++++++++++++-------- src/phira_build_guide/image.png | Bin 0 -> 15163 bytes 2 files changed, 37 insertions(+), 15 deletions(-) create mode 100644 src/phira_build_guide/image.png diff --git a/src/phira_build_guide/OpenHarmony.md b/src/phira_build_guide/OpenHarmony.md index faf4ce5..b17b3ad 100644 --- a/src/phira_build_guide/OpenHarmony.md +++ b/src/phira_build_guide/OpenHarmony.md @@ -2,7 +2,7 @@ ## 准备阶段 -1. 首先需要新增ohos平台,如果你没有安装`cargo`,如果没有安装,请点击 [这里]([./cargo.md](https://rust-lang.org/learn/get-started/)) 按系统安装构建工具。 +1. 首先需要新增ohos平台,如果你没有安装`cargo`,如果没有安装,请点击 [这里](https://rust-lang.org/learn/get-started/) 按系统安装构建工具。 更多内容可以参考 [ohos-rs](https://ohos.rs/) @@ -17,12 +17,13 @@ rustup target add x86_64-unknown-linux-ohos # 理论可以不加,如果不在x 下载完成之后,你需要为系统设置一个环境变量来帮助我们构建原生模块。假设你安装的 SDK 路径为 /path/Sdk,那么我们只需要设置如下的环境变量即可: ``` -# 一般来说 SDK 目录下面都有多个版本,选择你自己需要使用的版本即可。 -# 对于 unix 系统的用户来说请务必使用 export 否则会导致读取不到环境变量 -export OHOS_NDK_HOME=/path/Sdk/9/ - -# 对于 5.0.0 release 的 IDE 来说他的路径示例如下所示: +# 通常情况下,Windows/MacOS下的Deveco Studio已经包含了一套齐全的ndk。你只需要设置OHOS_NDK_HOME为Deveco Studio位置/sdk/default/openharmony即可。 +# 这里Deveco Studio的版本不得低于6.0.0(API 20). +# MacOS示例,这里仅推荐ARM版的MacOS对本项目进行开发。 export OHOS_NDK_HOME=/Applications/DevEco-Studio.app/Contents/sdk/default/openharmony +# Windows的Deveco Studio sdk 示例位置。 +set OHOS_NDK_HOME="C:\Program Files\Huawei\DevEco Studio\sdk\default\openharmony" +# 针对Linux平台,因为没有Deveco Studio支持,只能下载Command Line Tools。下载位置需要自行确定并且设置OHOS_NDK_HOME。 ``` 3. 安装ohrs @@ -36,13 +37,17 @@ cargo install ohrs 1. 首先克隆代码。 ``` -https://github.com/teamFlos/phira -https://github.com/teamFlos/phira-ohos +git clone https://github.com/TeamFlos/phira +git clone https://github.com/TeamFlos/phira-ohos ``` -2. 静态库文件,您可以 [直接下载](https://teamflos.github.io/phira-docs/phira_build_guide/prpr-avc.zip) 或者在 [缓存站](https://www.nuanr-mxi.com/prpr-avc.zip) 下载静态库文件,下载完成后直接解压到代码根目录下,如果提示覆盖文件,请点击覆盖。 +2. 静态库文件,您可以在 [ESA](https://www.nuanr-mxi.com/prpr-avc.zip) 或 [EdgeOne](https://eo.nuanr-mxi.com/prpr-avc.zip) 下载静态库文件,下载完成后直接解压到 phira 代码根目录下,如果提示覆盖文件,请点击覆盖。 + +3. 添加 `config.toml` ,配置cmake位置,此部分为编译ohos平台的phira所需要的。 -3. 添加 `config.toml` ,配置cmake位置。 +``` +$ cd phira +``` 针对 `Linux` 平台 @@ -59,6 +64,17 @@ OHOS_NDK_HOME = "/你的ohos sdk位置/command-line-tools/sdk/default/openharmon 针对 `Windows` 平台,你需要在项目的 `.cargo` 文件夹中新建 `cmake-wrapper.cmd` +`.cargo/cmake-wrapper.cmd` + +我们采用临时变量的方式防止与系统默认的cmake发生冲突 + +``` +@echo off +set PATH=D:\你的ohos sdk位置\default\openharmony\native\build-tools\cmake\bin;%PATH% +"D:/你的ohos sdk位置\default\openharmony\native\build-tools\cmake\bin\cmake.exe" %* +``` + + `.cargo/config.toml` ``` @@ -73,16 +89,22 @@ CMAKE_MAKE_PROGRAM = "D:/你的ohos sdk位置/default/openharmony/native/build-t ``` phira>cd phira #这里要进入到phira文件夹。否则会没有产物输出 -phira/phira>ohrs build --release --arch aarch #可以不加--arch 参数,即默认在x86 armv7 arm64编译,但目前鸿蒙设备均为arm64 +phira/phira>ohrs build --release --arch aarch #可以不加--arch 参数,即默认在x86_64 armv7 arm64编译,但目前鸿蒙设备均为arm64 ``` -5. 构建成功之后会在phira/dist找到`libphira.so` +5. 构建成功之后会在 `phira/dist/<对应的arch>` 找到 `libphira.so` + +6. `phira-ohos` 代码目录下不包含资源文件,你需要提前将 `assets/` 文件夹提前复制到 `entry/src/main/resources/resfile/assets` 中,如果您发现主程序黑屏,您可以前往 [release](https://github.com/TeamFlos/phira/releases)页面下载任意版本,获取缺失的资源文件并且复制到同一目录。 + +7. 进入 `phira-ohos` 文件夹中,将 `build-profile-nosigncfg.json5` 改成 `build-profile.json5` ,然后打开 `Deveco Studio` 。 + +连接设备,在 `Project Structure` 中找到 `Signing configs` 选择 `Automatically generate signature` 后点击 `Apply`,同时项目会自动触发Sync。 -6. `phira-ohos` 代码目录下不包含资源文件,如果您发现主程序黑屏,您可以前往 [release](https://github.com/TeamFlos/phira/releases)页面下载任意版本,获取缺失的资源文件,将缺失的资源文件放入 `entry\src\main\resources\resfile\assets` 中。 +![](image.png) -7. 进入 `phira-ohos` 文件夹中,将 `build-profile-nosigncfg.json5` 改成 `build-profile.json5` ,然后打开 `Deveco Studio` 。连接设备,在 `Project Structure` 中找到 `Signing configs` 选择自动生成签名。 +Project Structure位置在箭头所示 -复制生成的 `libphira.so` 到 `entry\libs\arm64-v8a`文件夹中。点击编译即可在ohos设备运行。 +复制生成的 `libphira.so` 到 `entry/libs/arm64-v8a`文件夹中。点击编译即可在ohos设备运行。 ## 常见问题 diff --git a/src/phira_build_guide/image.png b/src/phira_build_guide/image.png new file mode 100644 index 0000000000000000000000000000000000000000..6291d8df829333c5c3d899f37b3dd6f728f65fd2 GIT binary patch literal 15163 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 Date: Tue, 10 Mar 2026 11:22:14 +0800 Subject: [PATCH 4/4] fix: review --- src/phira_build_guide/OpenHarmony.md | 52 +++++++++++++--------------- 1 file changed, 24 insertions(+), 28 deletions(-) diff --git a/src/phira_build_guide/OpenHarmony.md b/src/phira_build_guide/OpenHarmony.md index b17b3ad..3fa126c 100644 --- a/src/phira_build_guide/OpenHarmony.md +++ b/src/phira_build_guide/OpenHarmony.md @@ -2,7 +2,7 @@ ## 准备阶段 -1. 首先需要新增ohos平台,如果你没有安装`cargo`,如果没有安装,请点击 [这里](https://rust-lang.org/learn/get-started/) 按系统安装构建工具。 +1. 首先需要新增 ohos 平台,如果你还没有安装 `cargo`,请点击 [这里](https://rust-lang.org/learn/get-started/) 按系统安装构建工具。 更多内容可以参考 [ohos-rs](https://ohos.rs/) @@ -12,19 +12,17 @@ rustup target add armv7-unknown-linux-ohos # 理论可以不加 rustup target add x86_64-unknown-linux-ohos # 理论可以不加,如果不在x86的模拟器运行 ``` -2. 你只需要下载最新的 `DevEco-Studio` 然后安装对应的 `NDK` 即可. 你可以在 [Deveco Studio (windows/macos平台)](https://developer.huawei.com/consumer/cn/deveco-studio/)或者配置[Command Line Tools(推荐Linux平台)](https://developer.huawei.com/consumer/cn/download/command-line-tools-for-hmos) 找到并且下载。 +2. 你只需要下载最新的 `DevEco-Studio` 然后安装对应的 `NDK` 即可。你可以在 [DevEco Studio (Windows/macOS 平台)](https://developer.huawei.com/consumer/cn/deveco-studio/) 或者配置 [Command Line Tools(推荐 Linux 平台)](https://developer.huawei.com/consumer/cn/download/command-line-tools-for-hmos) 找到并且下载。 下载完成之后,你需要为系统设置一个环境变量来帮助我们构建原生模块。假设你安装的 SDK 路径为 /path/Sdk,那么我们只需要设置如下的环境变量即可: -``` -# 通常情况下,Windows/MacOS下的Deveco Studio已经包含了一套齐全的ndk。你只需要设置OHOS_NDK_HOME为Deveco Studio位置/sdk/default/openharmony即可。 -# 这里Deveco Studio的版本不得低于6.0.0(API 20). -# MacOS示例,这里仅推荐ARM版的MacOS对本项目进行开发。 -export OHOS_NDK_HOME=/Applications/DevEco-Studio.app/Contents/sdk/default/openharmony -# Windows的Deveco Studio sdk 示例位置。 -set OHOS_NDK_HOME="C:\Program Files\Huawei\DevEco Studio\sdk\default\openharmony" -# 针对Linux平台,因为没有Deveco Studio支持,只能下载Command Line Tools。下载位置需要自行确定并且设置OHOS_NDK_HOME。 -``` +| 平台 | NDK 路径 | 环境变量设置方法 | +|------|----------|------------------| +| **MacOS** | `/Applications/DevEco-Studio.app/Contents/sdk/default/openharmony` | 在终端执行:
`export OHOS_NDK_HOME=/Applications/DevEco-Studio.app/Contents/sdk/default/openharmony`
建议添加到 `~/.zshrc` 或 `~/.bash_profile` 使其永久生效 | +| **Windows** | `C:/Program Files/Huawei/DevEco Studio/sdk/default/openharmony` | 1. 打开系统环境变量设置
2. 新建系统变量 `OHOS_NDK_HOME`
3. 变量值填入上述路径
或 PowerShell 临时设置:
`$env:OHOS_NDK_HOME="C:/Program Files/Huawei/DevEco Studio/sdk/default/openharmony"` | +| **Linux** | 下载 Command Line Tools 后的自定义路径 | 在终端执行:
`export OHOS_NDK_HOME=/your/download/path/openharmony`
建议添加到 `~/.bashrc` 或 `~/.profile` 使其永久生效 | + +> **注意**:`Deveco Studio` 或 `Command Line Tools` 版本不得低于 6.0.0 (API 20)。MacOS 仅推荐 ARM 版进行开发。 3. 安装ohrs @@ -41,9 +39,9 @@ git clone https://github.com/TeamFlos/phira git clone https://github.com/TeamFlos/phira-ohos ``` -2. 静态库文件,您可以在 [ESA](https://www.nuanr-mxi.com/prpr-avc.zip) 或 [EdgeOne](https://eo.nuanr-mxi.com/prpr-avc.zip) 下载静态库文件,下载完成后直接解压到 phira 代码根目录下,如果提示覆盖文件,请点击覆盖。 - -3. 添加 `config.toml` ,配置cmake位置,此部分为编译ohos平台的phira所需要的。 +2. 静态库文件,您可以在 [prpr-avc-ffmpeg](https://github.com/TeamFlos/prpr-avc-ffmpeg/releases) 下载 `aarch64-unknown-linux-ohos.tar.gz`,并解压所有链接库文件 `*.a` 到 `phira/prpr-avc/static-lib/aarch64-unknown-linux-ohos` 中。 + +3. 添加 `config.toml`,配置 cmake 位置,此部分为编译 ohos 平台的 phira 所需要的。 ``` $ cd phira @@ -62,16 +60,14 @@ CMAKE_MAKE_PROGRAM = "/你的ohos sdk位置/command-line-tools/sdk/default/openh OHOS_NDK_HOME = "/你的ohos sdk位置/command-line-tools/sdk/default/openharmony" ``` -针对 `Windows` 平台,你需要在项目的 `.cargo` 文件夹中新建 `cmake-wrapper.cmd` +针对 `Windows` 平台,你需要在项目的 `.cargo` 文件夹中新建 `cmake-wrapper.cmd`,我们采用临时变量的方式防止与系统默认的cmake发生冲突 `.cargo/cmake-wrapper.cmd` -我们采用临时变量的方式防止与系统默认的cmake发生冲突 - ``` @echo off -set PATH=D:\你的ohos sdk位置\default\openharmony\native\build-tools\cmake\bin;%PATH% -"D:/你的ohos sdk位置\default\openharmony\native\build-tools\cmake\bin\cmake.exe" %* +set PATH=D:/你的ohos sdk位置/default/openharmony/native/build-tools/cmake/bin;%PATH% +"D:/你的ohos sdk位置/default/openharmony/native/build-tools/cmake/bin/cmake.exe" %* ``` @@ -88,27 +84,27 @@ CMAKE_MAKE_PROGRAM = "D:/你的ohos sdk位置/default/openharmony/native/build-t 4. 开始构建 ``` -phira>cd phira #这里要进入到phira文件夹。否则会没有产物输出 -phira/phira>ohrs build --release --arch aarch #可以不加--arch 参数,即默认在x86_64 armv7 arm64编译,但目前鸿蒙设备均为arm64 +phira> cd phira # 这里要进入到 phira 文件夹,否则会没有产物输出 +phira/phira> ohrs build --release --arch aarch # 可以不加 --arch 参数,即默认在 x86_64、armv7、arm64 编译,但目前鸿蒙设备均为 arm64 ``` 5. 构建成功之后会在 `phira/dist/<对应的arch>` 找到 `libphira.so` -6. `phira-ohos` 代码目录下不包含资源文件,你需要提前将 `assets/` 文件夹提前复制到 `entry/src/main/resources/resfile/assets` 中,如果您发现主程序黑屏,您可以前往 [release](https://github.com/TeamFlos/phira/releases)页面下载任意版本,获取缺失的资源文件并且复制到同一目录。 +6. `phira-ohos` 代码目录下不包含资源文件,你需要提前将 `assets/` 文件夹复制到 `entry/src/main/resources/resfile/assets` 中。如果您发现主程序黑屏,可以前往 [Release](https://github.com/TeamFlos/phira/releases) 页面下载任意版本,获取缺失的资源文件并复制到同一目录。 -7. 进入 `phira-ohos` 文件夹中,将 `build-profile-nosigncfg.json5` 改成 `build-profile.json5` ,然后打开 `Deveco Studio` 。 +7. 进入 `phira-ohos` 文件夹中,将 `build-profile-nosigncfg.json5` 改成 `build-profile.json5`,然后打开 `DevEco Studio`。 -连接设备,在 `Project Structure` 中找到 `Signing configs` 选择 `Automatically generate signature` 后点击 `Apply`,同时项目会自动触发Sync。 +连接设备,在 `Project Structure` 中找到 `Signing configs`,选择 `Automatically generate signature` 后点击 `Apply`,同时项目会自动触发 Sync。 ![](image.png) -Project Structure位置在箭头所示 +Project Structure 位置如箭头所示 -复制生成的 `libphira.so` 到 `entry/libs/arm64-v8a`文件夹中。点击编译即可在ohos设备运行。 +复制生成的 `libphira.so` 到 `entry/libs/arm64-v8a` 文件夹中。点击编译即可在 ohos 设备运行。 ## 常见问题 -如果出现非常奇怪的编译报错,请考虑移步到~~arm64的MacOS~~或者 `WSL` 平台编译。 +如果出现非常奇怪的编译报错,请考虑移步到 ~~arm64 的 MacOS~~ 或者 `WSL` 平台编译。 -Deveco Studio并没有Linux原生版本。 \ No newline at end of file +DevEco Studio 并没有 Linux 原生版本。 \ No newline at end of file