1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > as工程放到源码编译_方舟编译器学习笔记2 源码编译

as工程放到源码编译_方舟编译器学习笔记2 源码编译

时间:2022-09-28 01:31:46

相关推荐

as工程放到源码编译_方舟编译器学习笔记2  源码编译

根据方舟官方文档编译了方舟编译器的源码,在这里简单谈谈其源码的编译过程:

1、操作系统环境:

64位版本的Ubuntu(官方推荐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-devlibc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utilsxsltproc 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:i386sudo apt-get -y install gcc-5-aarch64-linux-gnu g++-5-aarch64-linux-gnu

官方推荐安装上述库,但是即使是在Ubuntu 16.04上,这里很多库的版本较低。但是小版本号应该没什么太大的影响,我的本地环境以前编译过别的程序,所以导致很多库的版本都比这个推荐的要高,最终没有影响我的编译。所以不用太苛求其版本号。

3、源码下载:

git clone https://code./HarmonyOS/OpenArkCompiler.git

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

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

打开openarkcompiler/build/config/BUILDCONFIG.gn文件,将其中的GN_C_COMPILERGN_CXX_COMPILER和GN_AR_COMPILER 三个变量配置为Clang编译器所在路径,例如:

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"

5、下载和配置Ninja、GN:

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

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

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

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

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

source build/envsetup.shmake

命令说明:

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

至此,完成方舟编译器源码的编译。编译完成之后的界面如图所示:

编译完成之后,在OpenArkCompiler/out目录之下,会有如下几个文件:

其实这几个文件在未编译之前,在OpenArkCompiler/src/bin目录下就有。读了下OpenArkCompiler目录下的Makefile,其中java2jarjbc2mplmplcg都是直接从src/bin目录之下copy到out/bin目录之下的。只有maple有点特殊,它应该是编译生成的,然后install的时候反向copy到了src/bin目录之下,所以编译完成之后查看状态(git status),会发现src/bin/maple发生了变化。

OpenArkCompiler/Makefile中关于install的代码:

.PHONY: installinstall: mapleall$(shell cp -rf $(MAPLE_ROOT)/src/bin/java2jar $(MAPLE_ROOT)/out/bin/)$(shell cp -rf $(MAPLE_ROOT)/src/bin/jbc2mpl $(MAPLE_ROOT)/out/bin/)$(shell cp -rf $(MAPLE_ROOT)/src/bin/mplcg $(MAPLE_ROOT)/out/bin/)$(shell cp -rf $(MAPLE_ROOT)/out/bin/maple $(MAPLE_ROOT)/src/bin/)

感谢: @六棵核桃树

————

参考文档:

1、环境配置:OpenArkCompiler

2、源码编译:OpenArkCompiler

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。