华为的方舟编译器开源了,这是一个可以绕开jvm的编译神器,提高运行速度,这个足以让中国人骄傲了!

抱着好奇的态度,按照官方网站的指示,下载了一下源代码(官网百度搜不到,我用咕果才搜到,链接:https://www.openarkcompiler.cn/home),为了方便大家下载,我 已经把其中三个工具打包上传了,还有另外一个太大了,超过了300M,传不上来,下载地址:https://download.csdn.net/download/memoryjs/11719166

好了,下载好了之后,看看 ReadMe,主要部分

也就是说,目前开放的就只支持让你编译几个Demo玩玩,都是很简单的类,余大嘴吹的牛逼,还得后期实现(心疼华为的兄弟),好了我们继续看

笔者装的是Ubuntu18.04,官方推荐16.04,但是Ubuntu官网目前只能下载到18.04以及更高版本了,没关系,装起来吧,然后按照官方教程来,这里只是搬砖,感兴趣的去官网看看

1.安装openJDK以及gcc

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 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就是两条命令的事情,看网速,我是装了十分钟

2.安装Clang编译器并完成配置(用于编译方舟编译器代码)

就是这个玩意太大了,超过了300M,所以我无法上传到复现,可以自己去官网下载,官网网址

LLVM下载地址: http://releases.llvm.org/download.html#8.0.0

这里说一点:

llvm最新的llvm的版本是8.0.1.,并没有Ubuntu18.04的编译好的二进制文件,只有8.0.0有,官方也推荐8.0.0,所以建议还是下这个版本吧,如果你能下载安装Ubuntu16.04,可以按照官方推荐的来

我这里下载的是Ubuntu18.04的版本,可以看到它还支持其他的操作系统

3.安装Ninja、GN并完成配置

下载Ninja(v1.9.0)GN(Linux Version) Ninja下载地址: https://github.com/ninja-build/ninja/releases

GN下载地址:https://archive.softwareheritage.org/browse/content/sha1_git:2dc0d5b26caef44f467de8120b26f8aad8b878be/raw/?filename=gn

这两个工具已经集成在 https://download.csdn.net/download/memoryjs/11719166 里面了可以直接下载

4.下载方舟编译源码,并且把上面的工具放入对应目录下

方舟编译器源码已经集成在https://download.csdn.net/download/memoryjs/11719166 里面了可以直接下载,如果没有积分,可以去方舟编译器的主页下载,也很方便,我这里只是做了一个集成

这是解压后的目录,没有out目录,out目录是配置好后,编译出来的

然后就是配置这些工具到方舟编译器的目录下,上图是把对应文件放入的情况,配置信息如下:

1)clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04 

放置到openarkcompiler/tools目录,打开openarkcompiler/build/config/BUILDCONFIG.gn文件,将GN_C_COMPILERGN_CXX_COMPILERGN_AR_COMPILER三个变量配置为Clang编译器所在路径,例如:

GN_C_COMPILER = "${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04/bin/clang"
GN_CXX_COMPILER = "${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04/bin/clang++"
GN_AR_COMPILER = "${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04/bin/llvm-ar"

2)Ninja、GN配置

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

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

完成以上操作后,可以准备编译了。

5.编译方舟编译器

在openarkcompiler目录下执行以下命令,编译出OpenArkCompiler,默认输出路径 openarkcompiler/out/bin。两条命令:

source build/envsetup.sh
make

编译完成后,就会输出out目录

生成的文件全在bin之后。

6.踩过的坑

1.编译错误,像所有尝试一下,编译方舟编译器的时候出错,原因竟然是因为

clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04这个,官网下在下来后,解压的目录是clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04,看出来没,clang后面是个+号,所以编译的时候导致找不到目录

2.用方舟编译器编译实例HelloWorld.java的时候,提示Permision Denied,因为编译出来的文件没有可执行权限,如图

对相应的文件,把权限改成755 即可

7.用方舟编译器,编译简单的实例代码

然而编译报错...这个我还没解决,不过官网有网页实例,感兴趣的可以点点

期待方舟编译器的进一步开源,真正编译Android的apk

方舟编译器第一次尝试相关推荐

  1. 尝试自动批量翻译方舟编译器源码中的标识符

    在对方舟编译器源码中的近百个标识符/字符串常量进行手工汉化后, 尝试用批量替换+字典的方式对源码标识符进行自动翻译, 目标是自动翻译后达到与手工相同的效果. 字典来源于之前的手动提交. 批量替换之前基 ...

  2. 华为鸿蒙系统学习笔记5-华为方舟编译器正式开源及相关源码下载

    8月9日至8月11日,华为面向全球开发者的2019年开发者大会,将在东莞松山湖举行.据悉,今年也是华为第一次在华为松山湖基地欧洲小镇里举办开发者大会. 前不久,余承东曾在微博上预告:"让我们 ...

  3. 起底方舟编译器的引用计数!

    整理 | 胡巍巍 素材提供 | 华为 出品 | CSDN(ID:CSDNnews) 10月8日,是中国国庆假期后的第一个工作日,人们告别假日的休闲,再次返回工作岗位,准备为Q4摩拳擦掌. 这天早上,大 ...

  4. 万字长文详解华为方舟编译器的荣光和使命

    本文由MO编辑部出品,文字超1万,查阅的资料多达上百万文字,并且与华为方舟编译器的专家做过深度访谈.其不仅解析了华为在编译器和手机系统方面做的多年准备,也向读者展现了波澜壮阔的软件产业发展史. 201 ...

  5. 华为新贵!方舟编译器的荣光和使命

    本文由MO编辑部出品,文字超1万,查阅的资料多达上百万文字,并且与华为方舟编译器的专家做过深度访谈.文章高度概括了波澜壮阔的软件产业发展史,解析了华为在编译器和手机系统方面做的多年准备. 2017年5 ...

  6. 【每日新闻】华为推出方舟编译器称可提升安卓系统效率

    点击蓝字关注我们 更多精彩,请点击上方蓝字关注我们! 智慧属于人类,而风格属于作家. -- 莫佩尔蒂 中国软件网每日精选集 每日新闻播报 第04-11期 1 趋势洞察 胡海波:2019年全球CDN市场 ...

  7. 华为终于放出方舟编译器源代码!开源平台同步亮相,网友:硬核项目

    乾明 边策 发自 凹非寺  量子位 报道 | 公众号 QbitAI 华为方舟编译器终于正式开源,源代码放出,兑现了在8月开源的承诺. 代码不在GitHub,而是在自家开源平台上.这也意味着,华为开源平 ...

  8. 安卓代码拉下来编译后怎么运行_支付宝秒开是因为用了方舟编译器?官方回应...

    近期有不少用户发现,支付宝在更新后可以实现秒开,有传言称支付宝是采用了华为的方舟编译器才达到了这种效果. 有网友在知乎提问:如何看待支付宝采用华为方舟编译器几乎秒开的消息?" 这位网友表示: ...

  9. 助力 Android 抗衡 iOS,华为发布方舟编译器!

    传说中的诺亚方舟可以拯救全人类,那么活在现实的方舟编译器是否真的能突破 Android 系统性能原有的限制? (图源:CSDN 付费下载自东方 IC) 要说上个月于巴黎召开的 P30 系列发布会,华为 ...

最新文章

  1. python 开发板-MicroPython:STM32 上 的 Python 开发
  2. 如何解决KEIL 5 编KEIL4同RTX系统的project解
  3. 交易系统单服务器tps,交易者必看!一文了解TPS量化交易系统
  4. vbs禁用任务管理器
  5. android 去锯齿
  6. bwlabel算法_bwlabel函数的c++实现
  7. 移植opencv3.20到3556AV100
  8. 多线程的那点儿事(之多核编程)
  9. ISAPI Rewrite 2 规则中文版
  10. [Flex]浅析Mate flex framework在实际项目中的应用(二)
  11. Mac 安装仿宋GB2312 For Word/WPS
  12. 如何获取iphone的UUID
  13. 电视hdmi接口在哪_HDMI是什么意思?花5分钟看完这篇文章:原来如此!我现在明白了...
  14. 5点滑动平均公式推导
  15. 网络编程工程实训(DVB+CentOS+libpcap+分析帧格式)
  16. 四位数的可逆素数c语言,求四位的可逆素数。可逆素数指:一个素数将其各位数字的顺序倒过来构成的反序数也是素...
  17. Cisco Packet Tracer的基本应用
  18. drtek收音机使用说明_德劲1103收音机【简易操作指南】.【使用说明书】.高清版...
  19. html文标题党,教你成为微信公众号推文标题党
  20. 求助打开网站显示welcome to nginx!

热门文章

  1. 装修公司选择ERP解决方案前要考虑的关键功能有哪些?
  2. 移动竞争对手营销活动应对方案
  3. iOS 判断手机型号及系统版本(包括iPhone 11系列)
  4. 星露谷物语多玩家不显示服务器模式,《星露谷物语》多人模式最新详情 玩家之间可结婚!...
  5. cmd进入python环境_python进入的方法步骤
  6. word中页面上下出现横线无法删除
  7. 逆水寒最新服务器贴吧,逆水寒新区一号难求,玩家蹲守贴吧半月后崩溃:早知道自己练了...
  8. ipad 浏览器 java_在iPad Safari上的java – onpagehide事件
  9. 何为“超精简”(超晶简)版软件?何为“懂你版”?
  10. Word文件退出只读模式,需要密码?