方舟编译器架构示意图
在这里插入图片描述
当前方舟编译器支持Java / Kotlin程序字节码的前端输入,其它编程语言的支持(如C / C ++ / JS等)还在规划中,方舟编译器的中间表示(IR)转换器将前端输入转换成方舟IR,并输送给后端的优化器,最终生成二进制文件,二进制文件与编译器运行时库文件链接生成可执行文件,在方舟的运行环境中就可执行该文件。

环境配置
硬件推荐配置
2 GHz双核处理器或者更高等级CPU

2 GB系统内存及以上

200GB可用磁盘空间

开发环境推荐
您需要安装一个64位版本的Ubuntu(推荐Ubuntu 16.04)

sudo apt-get -y install openjdk-8-jdk git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip lib32z1-dev qemu g++-multilib gcc-multilib python3-paramiko python-paramiko python-jenkins python-requests python-xlwt libglib2.0-dev libpixman-1-dev linux-libc-dev:i386
sudo apt-get -y install gcc-5-aarch64-linux-gnu g++-5-aarch64-linux-gnu

安装锵编译器并完成配置(用于编译方舟编译器代码)
下载铛+ LLVM-8.0.0-x86_64的-Linux的GNU-Ubuntu的16.04

LLVM下载地址:http://releases.llvm.org/download.html#8.0.0

到放置openarkcompiler/tools目录,打开openarkcompiler/build/config/BUILDCONFIG.gn文件,将GN_C_COMPILER,GN_CXX_COMPILER状语从句:GN_AR_COMPILER三个变量配置为锵编译器所在路径,例如:

GN_C_COMPILER = "${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/clang"
GN_CXX_COMPILER = "${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/clang++"
GN_AR_COMPILER = "${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/llvm-ar"

其中$ {MAPLE_ROOT} 为openarkcompiler源码根目录。

安装Ninja,GN并完成配置
下载Ninja(v1.9.0)及GN(Linux Version) Ninja下载地址:https://github.com/ninja-build/ninja/releases

GN下载地址:https://archive.softwareheritage.org/browse/content/sha1_git:2dc0d5b26caef44f467de8120b26f8aad8b878be/raw/?filename=gn

将GN和Ninja可执行程序放置到openarkcompiler/tools目录,打开openarkcompiler/Makefile文件,将GN和NINJA两个变量配置为GN和Ninja可执行程序所在路径。例如:

GN := ${MAPLE_ROOT}/tools/gn/gn
NINJA := ${MAPLE_ROOT}/tools/ninja_1.9.0/ninja

开源地址:https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler/home
官网:https://www.openarkcompiler.cn/home
github:https://github.com/harmonyos-mirror

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐