方舟编译器编译helloworld

根据方舟官方文档,首先要把方舟编译器的源码,编译成可执行代码maple

1、操作系统环境:

目前我使用的是Ubuntu 16.04 虚拟机 而且官方推荐Ubuntu 16.04

 

2、安装支持包及库文件:

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

3  进入方舟编译器开源地址:

https://github.com/HarmonOS/OpenArkCompiler

下载相关代码并解压到相应目录下

我这里放在home 目录下 并修改目录名为 OpenArkCompiler

4、llvm和clang的下载及配置:

从LLVM Download Page 下载 LLVM8.0.0的Ubuntu 16.04 (.sig) 二进制包。解压之后,放到OpenArkCompiler/tools目录之下。

注意:这里要修改名字clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04 为clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04

加号+改为下划线_

5、下载和配置Ninja、GN:

从https://github.com/ninja-build/ninja/releases 下载Ninja v1.9.0,在tools下新建目录ninja_1.9.0,将ninja可执行文件放到ninja_1.9.0目录之下。

最好都使用chmod 777 ninja 处理一下。

从https://archive.softwareheritage.org/browse/content/sha1_git:2dc0d5b26caef44f467de8120b26f8aad8b878be/raw/?filename=gn 下载GN,在tools下新建目录gn,将gn可执行文件放到gn目录之下。

最好都使用chmod 777 gn 处理一下。

6、在OpenArkCompiler目录之下依次执行如下两个命令:

source build/envsetup.sh
make

经过以上操作后,系统就编译好了maple了。

要编译成功samples 下的helloworld.java  还需要做如下修改

7 修改 build/core/java2jar.mk 为如下代码。

$(APP_JAR): %.jar : %.java
        $(JAVA2JAR) $(APP_JAR)  "$(wildcard *.java)"

也就是将里面的 

${MAPLE_ROOT}/libjava-core/java-core.jar

 删除,让它不依赖于这个输入文件

8 修改 build/core/jbc2mpl.mk 为如下代码。

$(APP_MPL): %.mpl : %.jar $(JBC2MPL_BIN)
        $(JBC2MPL_BIN) -injar ${MAPLE_ROOT}/libjava-core/java-core.jar -injar $(APP_JAR) -out $(APP)

用java-core.jar 替换 libjava-core.mplt 也就是$(LIB_MPLT)

9  修改out/bin/java2jar 为如下代码

#!/bin/bash
OUTPUT=$1
CORE_ALL_JAR=$2
JAVA_FILE=$2
shift 2
javac -g -d . ${JAVA_FILE}
#javac -g -d . -bootclasspath ${CORE_ALL_JAR} $@
jar -cvf ${OUTPUT} *.class

10  最后需要下载我们一直在讨论的java-core.jar 库。

下载路径如下,并把相关库放到如下目录的libjava-core里面

  https://gitee.com/mirrors/java-core

方舟编译器编译helloworld_第1张图片

进入samples/helloworld目录下

make 就可以了,

最后的结果如下图

 

方舟编译器编译helloworld_第2张图片

没有报什么错误,并且在本目录下生成了一些必要的文件了。

 整个过程参考了如下大牛的讲解,https://zhuanlan.zhihu.com/p/81076176

你可能感兴趣的:(编译器,源码编译,方舟编译器)