方舟编译器分析二——编译器安装与使用

        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_COMPILERGN_CXX_COMPILERGN_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下载地址:https://archive.softwareheritage.org/browse/content/sha1_git:2dc0d5b26caef44f467de8120b26f8aad8b878be/raw/?filename=gn 

下载完后,在终端,进入文件所在的位置,执行以下命令,让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上加快应用的运行,总之非常强大。


 

 

上一篇:win10 cuda11.0 conda内安装mmcv mmdetection记录


下一篇:加快Androd 编译!