bin文件查看器app_鸿蒙系统编译第一个APP:hello
第三章 编译第一个APP:hello
1.1 Clang、LLVM与GCC介绍
我们在Ubuntu中给PC机编译程序时,执行这样的命令:
gcc -o hello hello.c
我们在Ubuntu给ARM板编译程序时,执行这样的命令(gcc前缀可能不一样):
arm-linux-gcc -o hello hello.c
在Liteos-a中,使用LLVM来编译程序。LLVM的本意是“Low Level Virtual Machine”,一个底层的虚拟机。但是它现在已经发展成了一种编译器(compiler)的框架系统。简单地说,LLVM可以取代GCC,LLVM容易扩展,可以提供更好的性能。
LLVM的框架如下:
Clang是“Frontend”(前端),用来执行词法分析、语法分析,简单地说就是:检查语法错误、包含头文件、扩展宏。
中间是优化器,把前端分析好的代码转换为LLVM IR(中间表示,intermediate representation),IR与机器无关,可以很方便地添加一系列的优化。
优化后得到的IR,再由“Backend”(后端)转换为各种机器的机器码。
以上内容来自网络,我对Clang、LLVM理解不深,简单介绍一下而已。
1.2 编译hello程序
使用Clang时,我们要指定很多参数:为哪类CPU编译程序(ARM还是Risc-V),CPU架构是什么(cortex A7还是cortex A15),头文件/库文件在哪?
在为Liteos-a编译程序时,以hello程序为例,可以执行以下命令:
cd /home/book/openharmony_for_imx6ull/apps/hello
clang -target arm-liteos --sysroot=/home/book/openharmony/prebuilts/lite/sysroot/ -o hello hello.c
上述命令的sysroot参数中,指定有标准头文件、库文件的目录。
还可以像GCC一样使用“-I”、“-L”参数指定其他头文件的目录、库文件的目录,比如后面会编译这个程序:
cd /home/book/openharmony_for_imx6ull/apps/freetype
clang -target arm-liteos --sysroot=/home/book/openharmony/prebuilts/lite/sysroot/
-I /home/book/openharmony/third_party/freetype/include
-L /home/book/openharmony/out/ipcamera_hi3518ev300/libs/usr
-lfreetype
-o show_line show_line.c
1.3 把hello程序放入rootfs
编译出hello程序后,可以把它放入rootfs目录下的bin字母,比如:
cd /home/book/openharmony_for_imx6ull/apps/hello
cp hello /home/book/openharmony/kernel/liteos_a/out/imx6ull/rootfs/bin
然后重新制作rootfs.jffs2,执行以下命令:
> cd /home/book/openharmony/kernel/liteos_a/out/imx6ull/ mkfs.jffs2 -s
> 0x10000 -e 0x10000 -d rootfs -o rootfs.jffs2
假设hello程序位于/home/book/apps/hello目录下,操作截图如下:
把得到的rootfs.jffs2放到烧写工具的files目录,就可以使用烧写工具启动了:
进入命令行后,就可以执行hello程序了,如下图所示:
注意:必须用“./bin/hello”,不能用绝对路径“/bin/hello”
全文下载技术交流群(鸿蒙开发/Linux/嵌入式/驱动/资料下载)QQ群:869222007
bin文件查看器app_鸿蒙系统编译第一个APP:hello相关推荐
- bin文件查看器app_腾讯文件:腾讯官方出品的微信 / QQ 文件管理和清理利器
前言 微信和 QQ 基本是大家手机上的必备应用了,但是使用时间久了,难免会积攒很多文件,甚至引起应用卡顿. 包括垃圾/缓存文件,或者我们接收保存的文件等等,占据了大量空间,又不好管理. 今天就分享一款 ...
- 好用的Bin文件查看器,J-flash
工作中,很多地方用到Bin文件,如编译完成后的固件和从MCU的Flash读出来的文件,这时候一个好的Bin文件查看器至关重要.经常我们用STM32自带的STM32 ST-LINK Utility可以直 ...
- Linux 下高级日志文件查看器Log File Navigator
Log File Navigator,简称lnav,是一款面向小规模的适用于 Linux 的高级日志文件查看器.它是一个终端应用程序,可以理解您的日志文件,让您轻松找到问题,几乎不需要什么设置. ln ...
- 【玩转.Net MF – 03】远程文件查看器
虽说目前.Net Micro Framework已经支持文件系统(FAT16/FAT32),但在远程还无法直接访问,从某种意义上讲,无法和PC交互的存储介质显得有些鸡肋.我做SideShow相关开发的 ...
- IFC模型文件查看器(基于IFC++开源库实现)
关于IFC IFC是由buildingSMART以工业的产品资料交换标准STEP编号ISO-10303-11的产品模型信息描述用EXPERSS语言为基础,基于BIM中AEC/FM相关领域信息交流所指定 ...
- 使用广泛的开源PCB文件查看器 Gerbv 含多个严重漏洞
聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 专栏·供应链安全 数字化时代,软件无处不在.软件如同社会中的"虚拟人",已经成为支撑社会正常运转的最基本元素之一,软件的安全 ...
- 【iOS_GitHub】文档/文件查看器(支持本地或者其他app分享过来的word、excel、pdf、rtf等格式文件)
DocViewer(文档/文件查看器) Function Description 文档查看器(Word && Excel && PDF && Rft | ...
- 点阵字体文件查看器 c#(HZK16)
在MCU项目中,准备自己写个简单的UI,在中文文字显示,打算选择 UCDOS 中的 HZK16,为了查看字体文件,用C#写了个简单的查看器,并导出数据为C语言数组(因为所用的STM32F103VET片 ...
- 【实用软件】Json文件查看器(支持查看超大JSON文件)
内容信息 软件类型:绿色 软件平台:电脑 软件版本:v1.0 软件大小:3.4MB 软件特点 Json文件查看器是一个用来查看Json文件的的绿色软件
- html文件阅读器电脑版,Excel文件查看器
Excel文件查看器电脑版是一款文档查看软件,Excel文件查看器电脑版对于需要临时查看Excel文档但是又不需要修改它的用户来说,Excel文件查看器电脑版无疑是最佳选择,速度快并且小巧,是个不错的 ...
最新文章
- html5面板制作代码,HTML5绘制设备面板
- Objective-C中的KVC与KVO(上)
- day1 作业编写登录窗口
- c语言 临时文件作用,c语言函数mktemp()产生唯一临时文件名实例源码介绍
- c语言一行代码太长,C语言修改一行代码,运行效率居然提升数倍,这个技巧你知道吗...
- 如何把 Word 中的表格快速插入 LaTeX?
- Learning to Rank简介
- XFire WebService demo
- codeforces educational round110 e
- 【项目】springboot中使用kaptcha生成验证码,登录时密码加盐处理
- 关于hibernate的查询
- node.js mongodb ReplSet
- 数据库名,全局数据库名,SID区别及有感
- Unable to start LiveReload server
- spss系列——一元线性回归的分析与预测实例
- C语言——输入两个正整数m和n,求其最大公约数和最小公倍数
- php人民币转换,PHP转换,如何实现人民币中文大写与数字相互转换?
- 静候 CSDN 佳音
- 计算机关机符号不见了,笔记本电量图标不见了怎么修复?
- 网站常用邮箱找回密码流程插件页面
热门文章
- Google earth
- Tomcat----windows系统通过命令符“强制关闭Tomcat”
- C++排序算法——归并排序
- Python计算坡度坡向并输出二维、三维图
- gdal.Buildvrt和gdal.Warp工具实现TIF影像拼接、矢量裁剪
- 二维数组,字符串,字符数组
- JS学习总结(10)——Windows对象
- 微信解绑手机号服务器会保留吗,我把我的微信号给了别人,银行卡都解绑了,但手机号还在绑定,会不会有危险...
- php . 和..,?php?和??
- go语言语法自我总结