# docs **Repository Path**: ark_standalone_build/docs ## Basic Information - **Project Name**: docs - **Description**: ArkCompier开发者文档 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 21 - **Forks**: 18 - **Created**: 2023-04-04 - **Last Updated**: 2025-06-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ArkCompiler开发指导 ## 概述 ArkCompiler是一种统一编程平台,包含编译器、工具链、运行时等关键部件,支持高级语言在多种芯片的编译与运行,并支撑应用和服务运行在手机、个人电脑、平板、电视、汽车和智能穿戴等多种设备上的需求。 ## 编译环境配置 推荐操作系统Ubuntu18.04及以上。 1. 安装依赖工具。 ```shell 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工具。 ```shell 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. 下载源码。 ```shell git config --global user.email "you@example.com" git config --global user.name "Your Name" repo init -u https://gitee.com/ark-standalone-build/manifest.git -b master repo sync -c -j8 repo forall -c 'git lfs pull' ``` 4. 安装编译器及二进制工具。 ```shell ./prebuilts_download.sh ``` 5. 按需选择操作步骤。 - [设置安卓开发环境步骤](./android_development_environment_helper.md)(需编译android目标前参考此步骤)。 - [设置qemu运行环境步骤](https://gitee.com/openharmony/device_qemu/blob/master/README_zh.md)(需运行非宿主机架构类型的可执行文件前参考此步骤)。 - 按 设置qemu运行环境步骤 操作,并执行如下命令(如需环境变量在下次打开终端时仍生效,则将之写入~/.bashrc文件中)。 - qemu_installation_path:qemu安装路径,设置qemu运行环境步骤 中确定。 ```shell export QEMU_INSTALLATION_PATH=${qemu_installation_path} ``` ## 开发步骤 1. 编译出可执行程序es2panda(es2abc)、ark_js_vm。 ```shell python ark.py x64.release es2panda ark_js_vm ``` - es2panda(es2abc):生成ArkTS文件对应的ArkCompiler字节码文件(尾缀:.abc)的可执行程序。 - ark_js_vm:运行ArkCompiler字节码文件的可执行程序。 2. 用es2abc生成.ts文件对应的ArkCompiler字节码文件。 ```shell out/x64.release/arkcompiler/ets_frontend/es2abc helloworld.ts ``` TypeScript用例文件helloworld.ts源码: ```TypeScript declare function print(arg: any): any; print('Hello world!'); ``` 生成的文件:helloworld.abc 3. 用ark_js_vm运行生成的ArkCompiler字节码文件。 ```shell out/x64.release/arkcompiler/ets_runtime/ark_js_vm helloworld.abc ``` 执行结果: ``` Hello world! ``` ## 执行unittest测试套 ``` python ark.py x64.release unittest ``` ## 执行Test262测试套 ``` python ark.py x64.release test262 ``` ## 执行regress测试套 ``` python ark.py x64.release regresstest ``` ## 执行workload测试套 ``` python ark.py x64.release workload ``` ## workload测试套详细参数 ``` python ark.py x64.release workload [report][dev][-number][number][cases_type] 详细说明,添加以下参数时请按顺序添加 report:是否生成报表,可省略,若省略该选项,请不要在后面添加其他参数 dev:编译类型,可省略,若省略该选项,请不要在后面添加其他参数 -number:劣化标记边界值,可省略,若省略该选项,请不要在后面添加其他参数 number:用例运行次数,可省略,若省略该选项,请不要在后面添加其他参数 cases_type:用例的类型,可省略,省略时执行全量workload 例:执行workload,并将结果输出到表格,标记劣化20%的数据,每个用例执行10次 python ark.py x64.release workload report dev -20 10 ``` ## 编译选项 编译模式选择,如在x64平台构建debug版本: ``` python ark.py x64.debug ``` 获取更多[编译说明](./ark_py_helper.md)