华为仓颉语言生成的程序的分发部署

目录

引言

编译程序

确定分发形式

运行时环境考虑

结语


引言

华为仓颉语言自问世以来,凭借其原生智能化、天生全场景、高性能、强安全等特性,吸引了众多开发者的目光。当我们使用仓颉语言完成程序开发后,如何将其高效地分发部署到目标环境中,让更多用户受益,成为了关键环节。接下来,让我们探讨这一过程。

编译程序

在分发部署之前,首先要对仓颉程序进行编译。仓颉语言拥有自己的编译器 cjc ,在安装仓颉环境时会一并安装。先编写了一个简单的 “Hello World” 仓颉程序,存放在名为 “hello_world” 的目录下,源文件为 “hello.cj”。

// hello.cj
main() {
    println("你好,仓颉")
}

通过在终端进入该目录,执行编译命令 “cjc hello.cj” ,编译完成后,会生成如 main(在 Linux 环境下)这样的可执行文件,以及 default.cjo 和 default.bchir2 等相关文件 。如果是Windows环境,会生成main.exe文件。这些生成的文件就是我们后续分发部署的基础。

确定分发形式

如果目标用户使用的操作系统与开发环境兼容,且不需要依赖复杂的运行时环境,那么可以直接将编译生成的可执行文件分发给用户。用户在相同系统下可直接运行。像简单的仓颉命令行工具,通过这种方式分发,用户下载后即可在本地终端执行,无需额外安装其他软件。

但是如果用户的计算机上没有安装仓颉开发环境,就需要将程序及其依赖项打包成安装包。如果只拷贝可执行文件到用户计算机上,会提示缺少运行时库。

test@ERAZE-UHYFLAFVU:~$ /mnt/d/test/main
/mnt/d/test/main: error while loading shared libraries: libcangjie-runtime.so: cannot open shared object file: No such file or directory

可以借助一些打包工具,将程序文件、运行时库、配置文件等整合在一起。在打包过程中,还可以设置安装向导,引导用户完成安装过程,如指定安装路径等。这样,用户只需下载安装包并按照提示操作,就能轻松完成应用的安装。

运行时环境考虑

下图1描绘了仓颉Native后端架构,包含了仓颉程序编译和运行的流程,其中仓颉的轻量化运行时(libcangjie-runtime.so)是其中核心组件之一。

仓颉语言提供了超轻量化的运行时,这为程序的部署和运行带来了极大优势。其运行时库剔除了不必要的冗余代码,移除了对 C++ 运行库的依赖,二进制体积最小不到 1MB 。

像前面所编写的简单程序至少需要分发两个运行库文件:

  • Linux下需要libcangjie-runtime.so和libsecurec.so
  • Windows下需要libcangjie-runtime.dll和libsecurec.dll

运行程序前,在Linux下需要将运行时库所在目录加到环境变量中:

export LD_LIBRARY_PATH=/mnt/d/test

此时就可以正常执行程序了:

如果是Windows操作系统,建议将运行时库所在目录加到PATH环境变量中。

在Cangjie/runtime目录下有完整的运行时库,如果使用了各种软件包,需要分发所对应的库文件。

 

结语

华为仓颉语言生成程序的分发部署需要综合考虑编译、分发形式、运行时环境以及目标部署环境等多个方面,确保开发的仓颉程序能够顺利地在各种环境中运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神一样的老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值