• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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