华为方舟编译器初探

主要过程:
下载编译器源码 -> 配置开发环境 -> 测试编译用例

系统要求: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,如果有,恭喜你!

你可能感兴趣的:(华为方舟编译器初探)