本帖最后由 hx1314521 于 2019-9-1 11:33 编辑
昨天对于我们程序员乃至整个国家来说可是大事情啊,
国内知名厂商华为开源了方舟编译器,
一瞬间大家都高潮了,对于爱折腾我来说,
第一件事情 编译一下方舟编译器,尝鲜一下。
第一步 配置环境
去官方网站(https://www.openarkcompiler.cn/document/environment),
按照步骤来您需要安装一个64位版本的Ubuntu(推荐Ubuntu 16.04)
[Shell] 纯文本查看 复制代码 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
安装Clang编译器并完成配置(用于编译方舟编译器代码)
下载clang+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三个变量配置为Clang编译器所在路径
,例如:
[Asm] 纯文本查看 复制代码 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 = "${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)(https://github.com/ninja-build/ninja/releases)及GN(Linux Version)(https://archive.softwareheritage.org/browse/content/sha1_git:2dc0d5b26caef44f467de8120b26f8aad8b878be/raw/?filename=gn)
将GN和Ninja可执行程序放置到openarkcompiler/tools目录,
打开openarkcompiler/Makefile文件
,将GN和NINJA两个变量配置为GN和Ninja可执行程序所在路径
。例如:
[Asm] 纯文本查看 复制代码 GN := ${MAPLE_ROOT}/tools/gn/gn
NINJA := ${MAPLE_ROOT}/tools/ninja_1.9.0/ninja
第二步 编译
在openarkcompiler目录下执行以下命令,
编译出OpenArkCompiler,
默认输出路径 openarkcompiler/out/bin。source build/envsetup.sh
第三步 编译他的hello world
啥情况啊,hello world都不好使,看情况[Asm] 纯文本查看 复制代码 /libjava-core/java-core.jar 貌似缺这个库
第四步 猜测
既然缺这个库,我们就搜索一下,还别说真搜索到一个
http://www.java2s.com/Code/Jar/j/Downloadjavalibcore11jar.htm,
赶紧放进去,继续编编编方舟,
哎还是不好使仔细看看错误吧
[Asm] 纯文本查看 复制代码 Fatal Error: Unable to find package java.lang in classpath or bootclasspath*.class : no such file or directory
明确告诉我们 java.lang 找不到class,既然这样我们就用系统包含这个函数的库丢进去,再编编看
hello world.jar是编译通过了,但是死在jbc2mpl 里面,
哎看来方舟我是开不了啦,java-core.jar是定制的,可能方舟还缺柴油啊,目前来看可能无法跑起来啦 |