鸿蒙 PC 底层开发技术详解(一):编译运行第一个 C/C++ 程序
本系列文章将深入探讨鸿蒙 PC 在文件系统、应用沙箱以及代码签名等层面的底层技术细节。在讨论技术细节之前,我们需要先掌握这项最基础的技能*如何在鸿蒙 PC 本地环境下编译并运行一个简单的 C/C++ 程序。
·
本系列文章将深入探讨鸿蒙 PC 在文件系统、应用沙箱以及代码签名等层面的底层技术细节。在讨论技术细节之前,我们需要先掌握这项最基础的技能:如何在鸿蒙 PC 本地环境下编译并运行一个简单的 C/C++ 程序。
这是后续所有实验的“入场券”,也是熟悉鸿蒙 PC 独特运行机制的第一步。
1. 准备工作:获取 ohos-sdk
在鸿蒙生态中,ohos-sdk (OpenHarmony SDK) 是所有底层开发的基石。它包含了定制化的 LLVM 编译器、sysroot 以及必要的签名工具。建议将 SDK 安装在用户家目录下(/storage/Users/currentUser)。
请打开 HiShell,执行以下命令:
# 1. 从 OpenHarmony 官方流水线下载 ohos-sdk
curl -fL -o ohos-sdk-public_ohos.tar.gz https://cidownload.openharmony.cn/version/Master_Version/ohos-sdk-public_ohos/20260330_020501/version-Master_Version-ohos-sdk-public_ohos-20260330_020501-ohos-sdk-public_ohos.tar.gz
# 2. 解压并组织目录结构
mkdir -p ~/ohos-sdk
tar -zxf ohos-sdk-public_ohos.tar.gz -C ~/ohos-sdk
cd ~/ohos-sdk/ohos
# 3. 解压核心的 native 和 toolchains 软件包
unzip -uq native-*.zip
unzip -uq toolchains-*.zip
cd -
# 4. 将编译器与签名工具路径加入 PATH 环境变量
export PATH=~/ohos-sdk/ohos/native/llvm/bin:~/ohos-sdk/ohos/toolchains/lib:$PATH
2. 编写与编译程序
创建一个简单的测试程序 my_program.c:
#include <stdio.h>
int main() {
printf("Hello, HongMeng PC!\n");
return 0;
}
使用 SDK 中的 clang 进行编译:
clang my_program.c -o my_program
3. 核心步骤:代码签名
如果你此时直接执行 ./my_program,系统会报错:
zsh: ./my_program: permission denied
这是因为 鸿蒙 PC 会强制校验二进制文件的代码签名。未经签名的 ELF 文件会被系统拦截。
我们需要使用 SDK 里的 binary-sign-tool 进行签名:
binary-sign-tool sign -selfSign 1 -inFile my_program -outFile my_program
4. 运行验证
签名完成后,程序即可成功运行:
./my_program
# 输出:Hello, HongMeng PC!
更多推荐

所有评论(0)