内容提要
在鸿蒙PC MateBook Pro上安装仓颉编译器每日构建版:通过应用商店安装CodeArts IDE和DevBox获取签名工具,解压SDK后修改envsetup.sh,用脚本为共享库签名并修复ld.lld问题,最后source配置环境变量,即可用cjc编译并签名运行仓颉程序。
延伸解读
签名工具获取的简化路径
文章提到,除了从CodeArts IDE提取签名工具外,现在可以直接在应用商店安装DevBox,然后在HisShell中直接使用binary-sign-tool。这为开发者提供了更便捷的获取方式,避免了手动提取的步骤,降低了环境配置的复杂度。
关键修改:envsetup.sh与ld.lld
安装过程中需要修改envsetup.sh的首行解释器为#!/bin/sh,并运行签名脚本为共享库签名。此外,必须进入third_party/llvm/bin目录,用cp lld ld.lld替换软链接,因为仓颉编译器无法识别软链接的ld.lld。这些步骤是保证cjc正常编译的关键。
环境变量配置的两种方式
文章介绍了临时和永久两种使用仓颉编译器的方法:临时使用可通过source ~/.cangjie/envsetup.sh在当前终端生效;永久使用则将该命令添加到~/.zshrc中,之后新终端均可直接使用cjc命令。用户可根据需要选择。
编译与运行流程示例
文章给出了一个完整的hello_world.cj示例,编译后需用binary-sign-tool对生成的可执行文件进行签名,再赋予执行权限,最后运行。这展示了仓颉程序在鸿蒙PC上从编译到运行的基本流程,强调了签名步骤的必要性。
Q&A
鸿蒙PC上安装仓颉编译器每日构建版需要提前准备哪些工具?
需要提前在应用商店安装CodeArts IDE和DevBox,用于获取签名工具binary-sign-tool;同时下载仓颉编译器每日构建版压缩包,如cangjie-sdk-ohos-aarch64-1.1.0-alpha.2025xxxxxxxxxxxxx.tar.gz。
如何获取仓颉编译器所需的签名工具binary-sign-tool?
有两种方法:一是从CodeArts IDE中提取签名工具;二是新方法,直接在应用商店安装DevBox,然后在HisShell中就可以直接使用binary-sign-tool了。
安装仓颉编译器时,解压SDK后需要修改哪个文件?具体怎么改?
需要修改cangjie/envsetup.sh文件,把首行的#!/bin/bash换成#!/bin/sh。
如何为仓颉编译器的共享库签名?
将提供的脚本保存为sign-cangjie.sh并复制到cangjie目录下(与envsetup.sh同级),然后在终端切换到cangjie目录,执行chmod +x sign-cangjie.sh并运行./sign-cangjie.sh。该脚本会递归查找所有共享库文件并用binary-sign-tool进行签名。
安装仓颉编译器后,如何解决cjc编译时找不到ld.lld的问题?
终端切换到third_party/llvm/bin目录,执行rm ld.lld && cp lld ld.lld。这是因为仓颉编译器看不到软链接的ld.lld,通过复制实际文件来解决。
如何配置仓颉编译器的环境变量以便使用cjc命令?
有两种方式:临时使用,在终端执行source ~/.cangjie/envsetup.sh,然后当前终端窗口即可执行cjc -v;永久使用,把source $HOME/.cangjie/envsetup.sh添加到~/.zshrc里,之后打开的新终端都可以使用仓颉命令。
在鸿蒙PC上如何编译并运行一个仓颉程序?
编写hello_world.cj文件,内容为main(){ println("你好,仓颉\n你好鸿蒙") };然后编译:cjc hello_world.cj;签名:binary-sign-tool sign -inFile "./main" -outFile "./main-signed" -selfSign 1;授权:chmod +x ./main-signed;执行:./main-signed,即可看到输出。