OpenHarmony子系统开发 - ArkCompiler开发指导

devtools/2025/3/16 6:35:32/

OpenHarmony子系统开发 - ArkCompiler开发指导

概述

ArkCompiler是一种统一编程平台,包含编译器、工具链、运行时等关键部件,支持高级语言在多种芯片的编译与运行,并支撑应用和服务运行在手机、个人电脑、平板、电视、汽车和智能穿戴等多种设备上的需求。

编译环境配置

推荐操作系统Ubuntu18.04及以上。

  1. 安装依赖工具。

    sudo apt-get update && sudo apt-get install python ruby python3-pip git-lfs gcc-multilib g++-multilib zlib1g-dev libc++1 curl nodejs
    
  2. 安装repo工具。

    mkdir ~/bin/
    curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo
    chmod a+x ~/bin/repo
    export PATH=~/bin:$PATH
    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
    
  3. 下载源码。

    repo init -u https://gitee.com/ark-standalone-build/manifest.git -b master
    repo sync -c -j8
    repo forall -c 'git lfs pull'
    
  4. 安装编译器及二进制工具。

    ./prebuilts_download.sh
    

开发步骤

  1. 生成编译产物ark_js_vm及es2panda。

    python ark.py x64.release
    
    • ark_js_vm:运行abc文件的可执行程序。
    • es2panda:将ArkTS文件转换生成ArkCompiler字节码文件的工具。
  2. 使用ts2panda将TypeScript文件转换为abc文件。

    out/x64.release/arkcompiler/ets_frontend/es2abc helloworld.ts
    

    TypeScript用例文件helloworld.ts源码。

    declare function print(arg:string):string;
    print('Hello world!');
    
  3. 执行生成的abc文件。

    out/x64.release/arkcompiler/ets_runtime/ark_js_vm helloworld.abc
    

    abc文件:ArkCompiler字节码文件。

    执行结果:

    Hello world!
    

执行Test262测试套

python ark.py x64.release test262

编译选项

编译模式选择,如在x64平台构建debug版本。

python ark.py x64.debug

获取更多编译说明。

python ark.py --help

http://www.ppmy.cn/devtools/167484.html

相关文章

【QT笔记---QText】

文章目录 概要1、字体样式设置1.1效果1.2demo1.3常用成员函数 概要 QText基本应用:1、字体样式设计; 1、字体样式设置 1.1效果 1.2demo //若需要设置字体、字体大小、字宽或者斜体状态的话,可以直接初始化时一起设置 // QFont::QFont(cons…

一些docker命令

一、基础命令 查看 Docker 版本 docker --version 或 docker version:显示 Docker 客户端和服务器的版本信息。 查看 Docker 系统信息 docker info:显示 Docker 系统的详细信息,包括镜像、容器数量、存储驱动类型等。 Docker 服务管理 s…

探索HTML5 Canvas:创造动态与交互性网页内容的强大工具

探索HTML5 Canvas:创造动态与交互性网页内容的强大工具 引言 在HTML5的众多新特性中,Canvas无疑是最引人注目的元素之一。它为网页设计师和开发者提供了一个通过JavaScript和HTML直接在网页上绘制图形、图像以及进行动画处理的画布。Canvas的灵活性和强…

Spring MVC 全面解析:架构、流程与核心组件(详细)

一、核心架构分层 Spring MVC 以 DispatcherServlet 为中心,协调各组件处理请求: 组件作用DispatcherServlet前端控制器,统一接收请求并分发给处理器(Controller)HandlerMapping映射请求 URL 到具体的处理器&#xf…

晋升系列4:学习方法

每一个成功的人,都是从底层开始打怪,不断的总结经验,一步一步打上来的。在这个过程中需要坚持、总结方法论。 对一件事情长久坚持的人其实比较少,在坚持的人中,不断的总结优化的更少,所以最终达到高级别的…

Vue.js 项目部署全解析:从开发到上线的关键旅程题

引言 在当今快速迭代的前端开发领域,将 Vue.js 项目顺利部署到生产环境,犹如为精心打造的数字产品开启面向世界的大门。从开发阶段的代码编写,到上线前的构建优化,再到最终服务器端的部署与调试,每一步都至关重要且充…

Tomcat 安装

一、Tomcat 下载 官网:Apache Tomcat - Welcome! 1.1.下载安装包 下载安装包: wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.102/bin/apache-tomcat-9.0.102.tar.gz 安装 javajdk。 yum install java-1.8.0-openjdk.x86_64 -y /etc/altern…

股指期货的锁仓是什么意思?

股指期货锁仓是指投资者在持有某一方向仓位的同时,反向开立一个数量相等但方向相反的仓位。这种操作类似于给持仓“上锁”,无论市场价格如何波动,锁仓后的盈亏状态都不会再发生变化。锁仓的主要目的是在不确定的市场环境下,锁定当…