Ubuntu18.04 安装方舟编译器及测试笔记

举报
Yuchuan 发表于 2019/10/12 22:29:26 2019/10/12
【摘要】 华为方舟编译器的安装及测试

一、将方舟编译器的源码下载保存到需要安装的目录并解压文件。

下载地址:https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler/home

二、环境配置

1)、硬件推荐配置

  • 2 GHz 双核处理器或者更高等级CPU

  • 2 GB 系统内存及以上

  • 200GB 可用磁盘空间


2)、开发环境推荐

    您需要安装一个64位版本的Ubuntu18.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 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)、安装Clang编译器并完成配置(用于编译方舟编译器代码)

    1、下载clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04


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

clang.PNG


2、放置到openarkcompiler/tools目录,打开openarkcompiler/build/config/BUILDCONFIG.gn文件,将GN_C_COMPILERGN_CXX_COMPILERGN_AR_COMPILER三个变量配置为Clang编译器所在路径,例如:

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

其中${MAPLE_ROOT}为方舟编译器源码所放的根目录

4)、安装Ninja、GN并完成配置

1、下载Ninja(v1.9.0)GN(Linux Version) Ninja下载地址:https://github.com/ninja-build/ninja/releases

*注意此处需要下载两个文件包:

ninja_resource.PNG

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

2、将资源文件解压放置到openarkcompiler/tools目录下,修改解压后的文件夹名称问:ninja_1.9.0

将GN可执行程序放置到openarkcompiler/tools/gn/目录;

Ninja可执行程序放置到openarkcompiler/tools/ninja_1.9.0/目录;

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

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

*注意修改gn和ninja的可执行权限

5)、源码编译

在openarkcompiler目录下执行以下命令,编译出OpenArkCompiler,默认输出路径 openarkcompiler/out/bin。

source build/envsetup.sh
make
命令说明:
source build/envsetup.sh 初始化环境,将OpenArkCompiler工具链路径openarkcompiler/src/bin设置到环境变量中
make 编译OpenArkCompiler的Release版本
make BUILD_TYPE=DEBUG 编译OpenArkCompiler的Debug版本

*注:执行命令source build/envsetup.sh之前请查看envsetup.sh是否有可执行权限,若没有则需要添加可执行权限。

chmod +x build/envsetup.sh

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

三、开始编译测试代码

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

1)、修改 build/core/java2jar.mk 为如下代码(注:修改前请先备份)

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

也就是将里面的 

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

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

2)、修改 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)

3)、 修改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

4)、 修改src/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

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

下载地址如下:https://gitee.com/mirrors/java-core

在${MAPLE_ROOT}方舟编译器源码所放的根目录下mkdir创建libjava-core目录,并将下载的java-core.jar 库放到此目录下。

6)、进入samples/helloworld目录下

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。