栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

方舟编译器的构建(笔记)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

方舟编译器的构建(笔记)

幕布:
文档链接: https://www.mubucm.com/doc/1z3htgqATZ6
密码: eueu

文章目录

1. 方舟编译器构建体系(逐层向下)

1. 构建流程 :2. 构建工具介绍:

1. Makefile2. gn3. Ninja

1. Ninja的特点: 2. 方舟编译器源码编译

1. 环境配置

1. Ubuntu 环境2. Clang 工具链3. gn 和 Ninja 2. 源码编译

1. 编译命令2. 生成文件目录 3. 方舟编译器官方例子编译

1. 编译前准备

1. 提前完成方舟编译器的源码编译2. 编译需要依赖 libcore 的 jar 包

1. 获取途径2. 使用方法: 2. 官方编译例子

1. exceptiontest2. helloworld3. iteratorandtemplate4. polymorphismtest5. recycletest6. threadtest 4. Toy runtime

1. 编译 Toy runtime 的步骤:

1. 获取 Toy runtime 源码2. 安装 aarch64 gnu linux 工具链3. 修改 Makefile4. 执行 make 或者 make pacific 编译完成 2. Toy runtime 加载汇编文件

1. 方舟编译器构建体系(逐层向下)
    多个工具层次化配置的构建体系 - 编译速度快 - 能更加快速地适应多种软硬件平台 - 需要开发者熟悉更多的构建工具
1. 构建流程 :
    Makefile 作为最上层的构建工具,暴露给编译源码的使用者,并且它会调用 gn;gn 为 Ninja的构建准备相关的配置文件;最终通过 Ninja 完成构建工作。
2. 构建工具介绍: 1. Makefile
    业界使用已久的构建工具。
2. gn
    gn 是 Chromium 项目开发的一种元构建系统,用来替代 GPY。和 GPY 相比,它的速度更快,能更好地解决依赖问题,能更好地支持调试。gn 这个构建系统,只生成 Ninja 构建文件,并不进行编译。
3. Ninja
    Ninja 是一个小型的构建系统,它聚焦于编译速度
1. Ninja的特点:
    它需要更高级的构建系统为它生成输入文件它的设计目的是尽可能快的构建。
2. 方舟编译器源码编译 1. 环境配置 1. Ubuntu 环境

默认为 Ubuntu 16.04

2. Clang 工具链 3. gn 和 Ninja

修改 gn 和 Ninja 的权限

2. 源码编译 1. 编译命令
# 初始化环境 
source build/envsetup.sh  

# 直接进行编译 
make 

# 编译 Debug 版本 
make BUILD_TYPE = DEBUG 
2. 生成文件目录
out/bin
3. 方舟编译器官方例子编译
    案例位置: OpenArkCompiler 主目录下的 sample目录中注意事项:需要提前完成方舟编译器的源码编译
1. 编译前准备 1. 提前完成方舟编译器的源码编译 2. 编译需要依赖 libcore 的 jar 包 1. 获取途径
    Android 代码本地编译获得 libcore 的 jar 包
    建议使用 Android 的 9.0.0_r45 版本直接从 gitee 下载
    地址: https://gitee.com/mirrors/java-core
2. 使用方法:
    在 OpenArkCompiler主目录 创建 libjava-core 目录将 java-core.jar 复制到此目录下在 OpenArkCompiler主目录 执行以下命令
source build/envsetup.sh
  
cd libjava-core  

#为了编译出 java-core 的 mpl 和 mplt 格式的中间输出文件
jbc2mpl -injar java-core.jar -out libjava-core
2. 官方编译例子 1. exceptiontest 2. helloworld
    使用方法:
    1. 进入helloworld 目录
    2. 编译代码
    # 需先回到 OpenArkCompiler主目录
    cd sample/helloworld/  
    
    make 
    
    最终生成文件
    1. HelloWrold.VtableImpl.s 是最终生成的汇编文件
    2. 位置: 在 sample/helloworld 目录下
3. iteratorandtemplate 4. polymorphismtest 5. recycletest 6. threadtest 4. Toy runtime
    Toy runtime(pacific)是方舟编译器的 runtime 参考实现,目前由 PLCT 实验室进行开发和维护。
1. 编译 Toy runtime 的步骤: 1. 获取 Toy runtime 源码

github:https://github.com/isrc-cas/pacific

2. 安装 aarch64 gnu linux 工具链

具体就是安装 gcc-aarch64-linux-gnu

3. 修改 Makefile

将 Makefile 中的 CROSS_AARCH64_GCC = aarch-64-gnu-gcc8 修改成 CROSS_AARCH64_GCC = aarch-64-gnu-gcc

4. 执行 make 或者 make pacific 编译完成 2. Toy runtime 加载汇编文件
# pacific 目录下执行  
make sample 
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/718669.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号