方舟编译器第一次尝试

HarmonyOS实战开发:方舟编译器运行指南-ArkCompiler 上述编译命令为release版本,编译debug版本需增加编译选项:--gn-args is_debug=true。 阅读详情

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

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

sudo 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.youkuaiyun.com/download/memoryjs/11719166 里面了可以直接下载

 

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

方舟编译器源码已经集成在https://download.youkuaiyun.com/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_COMPILER、GN_CXX_COMPILER和GN_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

HarmonyOS实战开发-方舟运行时使用指南 方舟编译器(ArkCompiler)是为支持多种编程语言、多种芯片平台的联合编译、运行而设计的统一编译运行时平台。 阅读详情

相关推荐

鸿蒙Harmony开发:方舟编译器运行时使用指南

方舟编译器(ArkCompiler)是为支持多种编程语言、多种芯片平台的联合编译、运行而设计的统一编译运行时平台。

DMZDAMS的博客 1692

HDC技术分论坛:ArkCompiler(方舟编译器)原理解析

作者:xianyuqiang 编译器首席架构师 ArkCompiler(方舟编译器)是组件化、可配置的多语言编译和运行平台,它既能支撑单一语言运行环境,也能支撑多种语言组合的运行环境。它目前主要支持的语言是JavaScript、TypeScript和Java。 一、概述 HarmonyOS的设计目标,是成为打通手机、PC、平板、电视、车机和智能穿戴等多种设备的统一操作系统。 图1 多设备互联 其应用开发有多编程语言、多范式的支持需求,其中高级编程语言包括JavaScript、Ty

HarmonyOSDev的博客 7480

华为方舟编译器正式支持C语言:完全开源

2019年8月底,华为方舟编译器(OpenArkCompiler)正式开源,迈出了跨越性的一步。 一年多来,方舟编程体系陆续实现了编译器、引擎、调试器的开源,其中编译器的重点功能主要集中在Java应用程序静态编译上。 华为强调,方舟项目的目标是构建一个基于MapleIR的跨语言编程环境,实现跨语言的全局分析及优化。 比如在现有Java编程环境下面,开发者经常需要同时编写Java、C语言程序,通过JNI相互调用,而这两种语言之间目前是不直接互通的。 方舟编程体系的终极愿景之一,就是要通过一致的IR来表述不同语

miaozenn的博客 5592

2024年最全方舟编译器最新技术细节(1),安卓开发面试考啥

今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。最后在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。还有。

2401_84563987的博客 1301

LSM6DS3TR-C IMU传感器入门:从MEMS原理到姿态解算实战

惯性测量单元(IMU)是现代智能设备实现运动感知的核心部件,其基础原理基于微机电系统(MEMS)技术。MEMS加速度计通过检测质量块在惯性力作用下的位移来测量线性加速度,而陀螺仪则利用科里奥利力效应感知角速度。这种技术使得微型化、低成本的6自由度运动测量成为可能,为机器人、无人机、可穿戴设备等提供了关键的空间姿态和运动状态信息。在实际工程中,开发者需要掌握I2C/SPI通信协议、传感器数据读取与校准,并通过互补滤波等算法融合加速度计和陀螺仪数据,实现稳定的姿态解算。LSM6DS3TR-C作为一款高性价比的6

weixin_28684655的博客 596

OKCC呼叫中心部署实战指南:从零搭建高效外呼系统

本文提供OKCC呼叫中心系统的完整部署实战指南,从服务器选型、操作系统准备到详细安装步骤和性能优化,帮助企业从零搭建高效外呼系统。重点介绍FreeSWITCH核心组件的安装配置技巧,以及常见问题排查方法,助力企业提升客户服务效率。

weixin_29275257的博客 164

尝试方舟编译器下对Java中标识符中文命名

之前承蒙这位测试, 方舟编译器支持Java下的中文命名标识符: 跑不通的可参考Z乎的这篇文章,已找到一个可使测试用例编译通过的java-core库 · Issue #I11R87 · HarmonyOS/OpenArkCompiler - 码云 Gitee.com 为了确认之前(手工翻译方舟编译器源码:尝试重命名标识符与文本)的源码汉化不会影响编译, 自己也试试. 编译方法参考: 小乖他爹:方舟编...

中文编程 2482

LabVIEW多界面应用开发:从启动器到主界面的切换架构与实现

在图形化编程领域,模块化与界面管理是构建复杂应用程序的核心。其原理在于通过清晰的程序架构,实现不同功能模块间的独立运行与协同工作,从而提升代码的可维护性和可扩展性。这种架构的技术价值在于能够有效管理应用程序的生命周期与资源,避免内存泄漏,并确保流畅的用户体验。在测控系统、自动化测试等工程实践中,常需实现如启动界面选择语言或模式后,无缝切换至主功能界面的场景。本文聚焦于LabVIEW环境,深入探讨如何利用动态调用、状态机等机制,并结合功能全局变量(FGV)与队列消息处理器(QMH)等热词技术,构建健壮的多界面

weixin_30802819的博客 263

在HarmonyOS上使用方舟编译器

在探讨鸿蒙操作系统(HarmonyOS)时,不可避免地会涉及到方舟编译器(ArkCompiler),这是华为为提升应用性能和开发效率而推出的一个重要工具。方舟编译器是HarmonyOS生态系统中的核心组件之一,它通过将高级语言代码直接编译成本地机器码,而不是依赖于虚拟机运行时解释执行,从而大幅提升了应用程序的启动速度和运行效率。对于开发者来说,理解并掌握如何使用方舟编译器来优化其应用程序至关重要。

qq_40698086的博客 1325

先进封装类别分析与典型案例

当制程微缩逼近物理极限、单颗大芯片(reticle limit)面积受限于光罩尺寸,且逻辑、存储、射频、传感等功能无法用同一套工艺最经济地制造时,性能增益的来源从 "晶体管密度" 转向 "互连密度"。先进封装的本质,是在芯片外部用更短、更密、更宽的路径把多个裸 die(die)互连起来,换取更高带宽、更低延迟、更小体积和异构集成能力。行业通常按划分为 2D、2.5D、3D、扇出、SiP 五大谱系,Chiplet/UCIe 则是贯穿其上的设计方法论,玻璃基板、共封装光学(CPO)是正在成型的新分支。

0 36

高通平台WIFI学习-- 基于6GHZ Discovery (STA Scanning)讲解

本文介绍了6GHz频段的网络扫描优化方案。主要内容包括:1)带内发现机制,将6GHz信道分为优先扫描信道(PSC)和非PSC信道,规范了STA发送探测请求的条件及等待时间;2)带外发现机制,通过RNR信息元素实现跨频段AP发现,减少6GHz频段干扰;3)具体扫描流程示例,包括DBS扫描和敏捷扫描的顺序安排。方案通过优化探测请求发送规则和跨频段信息共享,有效降低了信道污染和扫描延迟,日志数据验证了6GHz信道扫描的具体实现过程。

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 268

华为方舟编译器开源!前华为人重磅解读!

【优快云 编者按】8月31日,华为方舟编译器正式开源。据华为内部人士表示,华为员工为了这次开源,连续30小时没有合眼。 早在在8月9日的华为开发者大会上,华为消费者业务CEO余承东,就宣布将在8月底开源方舟编译器的框架代码。 如今,方舟编译器如期开源!作为鸿蒙OS的重要组成部分,“方舟”的开源,也意味着鸿蒙OS的开源不远矣! 那么,方舟编译器的开源,就有哪些亮点?优快云特邀上海...

优快云资讯 1万+

Midscene.js(2):代码集成 + 桥接模式(Bridge Mode)的使用「喂饭教程」

本文将手把手教你从零开始搭建一个 Node.js 项目,集成 Midscene.js,并利用其桥接模式实现对 Chrome 浏览器的自动化操作。我们将通过具体的实例,来展示 Midscene.js 的便捷性与 AI 能力的结合。

blues_C的博客 1845

华为方舟编译器的代码编译

与优快云阔别15年了,觉得要写点东西回报一下技术社区。今天尝试编译一下华为方舟编译器,不出意料,方舟编译器是基于LLVM开发的。 1. 找到一台ubuntu,建议16.04,先把代码拖下来 git clone https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler.git 2. 安装依赖软件包 sudo ap...

科技眼 2815

倍福EL5101模块连接编码器

1、 EL5101模块简介:EL5101为单通道增量型编码器计数模块,一共有EL5101-0000、EL5101-0010、EL5101-0011、EL5101-0090(尚未供货)四种型号,其中EL5101-0000比较常用,本例使用EL5101-0000连接增量型编码器 2、 硬件外观和接线 在这里插入图片描述 3、 指示灯说明 4、和编码器连接的案例 ......

weixin_41883890的博客 6501

安装openclaw时出现node.exe : npm error code EIDLETIMEOUT的解决方案

本文主要介绍了安装openclaw时出现node.exe : npm error code EIDLETIMEOUT的解决方案,希望能对学习使用openclaw的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 11万+

手工翻译方舟编译器源码:尝试重命名标识符与文本

[ 参考: 小乖他爹:方舟编译器学习笔记6 方舟开源目录简介, 先从maple.cpp入口代码开始中文化(与前作手工翻译Vue.js源码:尝试重命名标识符与文本类似), 作为初步的可行性实验. 之前以为编译输出文件在重命名标识符后不会有变化, 尝试后发现天真了. 于是现在仅检验是否能够编译通过. 下面是中文化后的src/maple_driver/src/maple.cpp代码: using nam...

中文编程 2576

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

为何要搞 10 年?方舟编译器专家首次回应

昨天华为正式开源了其方舟编译器,一时间引起热议。在方舟技术专家所在的微信群中,关于为何方舟需要研发 10 年的问题被首次回应。 JFinal 作者詹波的疑惑是为什么方舟编译器需要花费 10 年时间才实现: 方舟编译器官网的深度解密文章表明,做出方舟编译器的难度极大。我理解为比做一个 C++ 编译器的难度要大得多得多,否则打造方舟编译器不会需要十年时间。 而 C++ 远比 Java...

寒冰屋的专栏 4966

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

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

在对方舟编译器源码中的近百个标识符/字符串常量进行手工汉化后, 尝试用批量替换+字典的方式对源码标识符进行自动翻译, 目标是自动翻译后达到与手工相同的效果. 字典来源于之前的手动提交. 批量替换之前基本没有任何语法分析, 仅有不完全的注释/字符串识别处理. 阶段小结如下. 处理的结果与之前的手动修改比较. 生成的diff大约30k, 大约60多处不同. 相对修改的上千处代码来说, 比例很小. 存在...

中文编程 1442

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

方舟编译器最新技术细节

今天的 华为有技术·EMUI媒体沙龙 中,华为消费者BG软件部总裁王成录博士和大家分享了华为黑科技背后的故事,其中透露了关于方舟编译器的更多细节。作为一名 Android 开发,我也一直关注着方舟的最新动态。在方舟发布的第一时间,我也写了一篇相关的文章 说说方舟编译器,对方舟和 Android Art 运行机制还不是很了解的可以移步这篇文章。 下面是媒体沙龙会上关于方舟编译器的相关介绍,来自于微博...

秉心说 5225

华为方舟编译器

华为方舟编译器开源!前华为人重磅解读! 2019年09月01日 18:00:00 优快云资讯 阅读数 2096 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.youkuaiyun.com/csdnnews/article/details/100190296 640?wx_fmt=gif 【优快云 编者按】8月3...

weixin_45588010的博客 1283

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

整理 | 胡巍巍 素材提供 | 华为 出品 | 优快云(ID:优快云news) 10月8日,是中国国庆假期后的第一个工作日,人们告别假日的休闲,再次返回工作岗位,准备为Q4摩拳擦掌。 这天早上,大洋彼岸传来消息,美国东部时间10月7日,美国商务部产业安全局(BIS)把28家中国实体加入“实体清单”,包括大华科技、海康威视、科大讯飞等8家中国企业。 清单中的实体,须在有许可证的情况下,才可购买...

优快云资讯 3842

为什么华为方舟编译器要搞 10 年?

点击上方“开发者技术前线”,选择“星标”18:55 在看真爱来自:开源中国2019年8月31日,华为方舟编译器开源官网正式上线。华为的方舟编译器终于迎来了开源,而且开...

开发者技术前线-DevolperFront 1381

使用方舟编译器检查Fastjson OOM问题

思路准备过程编译方舟编译器Fastjson代码分析展望思路通过介入编译期间进行安全检查是类似于Facebook infer类的产品,为什么要这么做呢?源代码安全检查工具粗略分为两...

weixin_47208161的博客 4034

华为方舟编译器是黑科技?

在4月份,华为P30系列发布会上,华为消费者终端业务CEO余承东除了给消费者带来了万众期待的华为P30 Pro,还公布了一个全新的黑科技:华为方舟编译器。该编译器可以改善安卓应用编译效率,从原先的边解释边执行转变为全程机器码高效运行程序。称华为方舟编译器可使手机的流畅度最高提升60%,因而引起广大网友的热烈反应。 那么今天就借着华为方舟编译器一事所激起的热火朝天的大讨论。来介绍...

优快云资讯 2299

华为“方舟编译器”到底是个什么鬼?

在华为春季发布盛典上,除了“HUAWEI P30”还有一个词也火了一把,那就是全新黑科技——“华为方舟编译器”!先花一分钟,戳视频简单了解下方舟编译器虽然是在4月11日首...

4057
上一篇: Android 下隐藏虚拟导航栏的方法,不需要root,需要的时候调出,弹dialog不会闪现
下一篇: 基于Android的Camera2封装,可以实时获取到预览画面和图片
memoryjs
博客等级 码龄18年 240粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值