鸿蒙系统编译第一个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的框架如下:
鸿蒙系统编译第一个APP:hello
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目录下,操作截图如下:
鸿蒙系统编译第一个APP:hello

把得到的rootfs.jffs2放到烧写工具的files目录,就可以使用烧写工具启动了:
鸿蒙系统编译第一个APP:hello
进入命令行后,就可以执行hello程序了,如下图所示:
鸿蒙系统编译第一个APP:hello
注意:必须用“./bin/hello”,不能用绝对路径“/bin/hello”

全文下载
技术交流群(鸿蒙开发/Linux/嵌入式/驱动/资料下载)
QQ群:869222007

原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

鸿蒙系统编译第一个APP:hello

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » 鸿蒙系统编译第一个APP:hello
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏