当前位置: 首页 > article >正文

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

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.kler.cn/a/587050.html

相关文章:

  • matlab 控制系统GUI设计-PID控制超前滞后控制
  • 打靶日记Kioptix Level 4
  • vue项目如何实现条件查询?
  • 贪吃蛇小游戏-简单开发版
  • 【实战ES】实战 Elasticsearch:快速上手与深度实践-附录-2-性能调优工具箱
  • 路由器和网关支持边缘计算
  • 无需归一化的Transformers:神经网络设计的突破
  • 单元测试、系统测试、集成测试
  • MySQL数据库知识总结
  • Java 大视界 -- Java 大数据在智能金融资产定价与风险管理中的应用(134)
  • install of jenkins-2.501-1.1.noarch conflicts with file
  • 【redis】hash 类型应用场景
  • 面试系列|蚂蚁金服技术面【2】
  • The workbook already contains a sheet named
  • docker 增加镜像(忘记什么bug了)
  • Linux下的正则表达式应用与sed、printf、awk等命令的使用
  • 大模型架构全景解析:从Transformer到未来计算范式
  • Java 大视界 -- Java 大数据中的异常检测算法在工业物联网中的应用与优化(133)
  • 介绍一下 VexRiscv
  • Stable Diffusion 模型具体如何设置参数?