2021SC@SDUSC
既然要做方舟编译器的分析,就不得不提到如何使用它。
官方源码:
https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler/file?ref=master&path=doc%252FDevelopment_Preparation.md
所需系统:Ubuntu 16.04(系统推荐)
1. 首先,克隆源码到本地
在home/目录下,打开终端,切换到root角色,执行以下命令:
git clone https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler.git
2. 下载依赖库
执行以下命令:
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
apt-get -y install gcc-5-aarch64-linux-gnu g++-5-aarch64-linux-gnu
(如果前两个命令没有报错,则忽略以下这条命令)
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-requests python-xlwt libglib2.0-dev libpixman-1-dev linux-libc-dev:i386
3.执行
pip install python-jenkins
4.下载clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04
打开以下面地址:clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-xx下载clang+llvm。如图所示。
4.下载完后,在终端,进入文件所在的位置,执行以下命令,解压文件:
tar -xvf clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz
5.将解压出来的文件,放置在方舟编译器源码目录下的这个位置:openarkcompiler/tools
并打开openarkcompiler/build/config/BUILDCONFIG.gn文件,
将GN_C_COMPILER、GN_CXX_COMPILER和GN_AR_COMPILER三个变量配置为Clang编译器所在路径(其中${MAPLE_ROOT}为openarkcompiler源码根目录。),例如:
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"
6.下Ninja、GN
Ninja(v1.9.0)下载地址:
https://github.com/ninja-build/ninja/releases
下载完后,在终端,进入文件所在的位置,执行以下命令,解压文件:
tar -zxvf ninja-1.9.0.tar.gz
下载完后,在终端,进入文件所在的位置,执行以下命令,让gn变成可执行文件:
chmod 777 gn
7. 配置安装Ninja、GN
复制解压后的ninja文件和下载的gn到openarkcompiler/tools目录下。然后,从终端进入
ninja-1.9.0目录,并执行以下命令:
./configure.py --bootstrap
完成后,会生成一个ninja文件。
将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
8. 编译源码
做完成上述步骤后,在终端,回到openarkcompiler/目录下,执行以下命令,将上述配置,导到环境变量里面去:
source build/envsetup.sh
最后,执行编译命令:
make
编译成功后,如下图所示:
接着,由终端进入openarkcompiler/out/bin/目录下,就可以看到编译出来的,用于实现编译的相关工具,这里生成的不是一个类似于IDEA或Android Studio的可视化的编译工具。如下图所示:
9. 总结
方舟编译器的安装·、配置和使用就完成了,可以用来编译代码,也能在Android上加快应用的运行,总之非常强大。