华为方舟编译器初探
2019-10-12 本文已影响0人
九十九点八
主要过程:
下载编译器源码 -> 配置开发环境 -> 测试编译用例
系统要求:Ubuntu-16.04。由于需要安装clang编译环境,而方舟源码中使用了16.04版本中的类型,所以我在一开始使用了Ubuntu 18.04版本+18.04的clang报错。
1、下载方舟编译器源码
git clone https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler.git
2、下载对应版本的clang编译器。当时官网推荐使用8.0版本,我是用了9.0也没问题。
3、修改编译器配置文件(检查下与你对应的路径是否正确)
// openarkcompiler/build/config/BUILDCONFIG.gn
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"
注:${MAPLE_ROOT}是方舟编译器的路径,不需要自己去设置,后续编译的时候回自动添加(envsetup.sh)
4、安装Ninja和GN。当时我使用的版本是ninja1.9.0,跟官网推荐一致。
检查编译器配置文件路径是否正确
// openarkcompiler/build/config/BUILDCONFIG.gn
GN := ${MAPLE_ROOT}/tools/gn/gn
NINJA := ${MAPLE_ROOT}/tools/ninja_1.9.0/ninja
5、编译测试用例
回到方舟编译器根目录
// 配置编译器环境 其中MAPLE_ROOT就是在这配置的 如果编译器目录改变 需要重新执行更新
source build/envsetup.sh
// 会生成编译器的release版本 如需debug版本执行 `make BUILD_TYPE=DEBUG`
make
编译过程中我遇到了一个错误找不到javac命令,安装jdk即可,我用了jdk8正常。
下面是编译HelloWorld的一个准备工作,我偷懒截图了,没有需要说明的。
编译前配置
正式编译:
// 文件夹下会有Makefile文件
cd samples/helloworld/; make
执行完成后ls看是否会有 HelloWorld.jar,如果有,恭喜你!