1# ArkCompiler开发指导 2 3## 概述 4ArkCompiler是一种统一编程平台,包含编译器、工具链、运行时等关键部件,支持高级语言在多种芯片的编译与运行,并支撑应用和服务运行在手机、个人电脑、平板、电视、汽车和智能穿戴等多种设备上的需求。 5 6## 编译环境配置 7推荐操作系统Ubuntu18.04及以上。 8 91. 安装依赖工具。 10 ```shell 11 sudo apt-get update && sudo apt-get install python ruby python3-pip git-lfs gcc-multilib g++-multilib zlib1g-dev libc++1 curl nodejs 12 ``` 132. 安装repo工具。 14 ```shell 15 mkdir ~/bin/ 16 curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo 17 chmod a+x ~/bin/repo 18 export PATH=~/bin:$PATH 19 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests 20 ``` 213. 下载源码。 22 ```shell 23 repo init -u https://gitee.com/ark-standalone-build/manifest.git -b master 24 repo sync -c -j8 25 repo forall -c 'git lfs pull' 26 ``` 27 284. 安装编译器及二进制工具。 29 ```shell 30 ./prebuilts_download.sh 31 ``` 32 33## 开发步骤 34 351. 生成编译产物ark_js_vm及ts2panda。 36 ```shell 37 python ark.py x64.release 38 ``` 39 - ark_js_vm:运行abc文件的可执行程序。 40 - ts2panda:将ArkTS文件转换生成ArkCompiler字节码文件的工具。 41 422. 使用ts2panda将TypeScript文件转换为abc文件。 43 ```shell 44 prebuilts/build-tools/common/nodejs/node-v12.18.4-linux-x64/bin/node --expose-gc out/x64.release/clang_x64/obj/arkcompiler/ets_frontend/ts2panda/build/src/index.js helloworld.ts --opt-level 0 45 ``` 46 TypeScript用例文件helloworld.ts源码。 47 ```JavaScript 48 declare function print(arg:any):string; 49 print("Hello world!"); 50 ``` 51 523. 执行生成的abc文件。 53 ```shell 54 out/x64.release/clang_x64/arkcompiler/ets_runtime/ark_js_vm helloworld.abc 55 ``` 56 abc文件:ArkCompiler字节码文件。 57 58 执行结果: 59 ``` 60 Hello world! 61 ``` 62 63## 执行Test262测试套 64``` 65python ark.py x64.release test262 66``` 67 68## 编译选项 69 70编译模式选择,如在x64平台构建debug版本。 71``` 72python ark.py x64.debug 73``` 74获取更多编译说明。 75``` 76python ark.py --help 77``` 78