2020-11-25 18:54:14
0
比起研究内核,我这次选题更倾向于基于鸿蒙的应用层开发,其中最需要克服的就是交叉编译的问题,目前第一步就是简单编译个myAPP显示下hello world,后面还需要交叉编译opencv等。其实鸿蒙提供的工程具体如何构建我还没时间进行研究,不过经过一些试错和readme的阅读,初步实现只交叉编译个人文件。因为之前工程的根目录下的build.py一运行就从头编译到尾,而且一开始还不会把个人文件加入到工程中一起编译。另外即使成功把文件加入到工程中一起编译,每次都要全部编译太耗时了,所以本文提供一种只编译一个个人工程的思路。
整个工程基于gn构建,我个人对gn并没有单独去学习了解,大概看了下工程内的其他gn的文件,总结学习了,更多细节期待懂的daolao进行科普。
gn中//是工程的根目录,总的build相关gn配置再//build/lite内的BUILD.gn文件里,
我们先在根目录下新建文件夹,取名为myFirstAPP,然后里面有一个BUILD.gn和src文件夹,src文件夹里面放着c文件。
自己的工程.gn内如如下
目标是生成可执行文件,具体写法参考了官方例程关于串口驱动那里,应用层的相关编写
.c就是间的helloworld
大概看了下总的BUILD.gn文件内容,大概思路就是根据我们编译的指令,比如python build.py ipcamera_hi3518ev300 就根据这个ipcamera_hi3518ev300 在
//build/lite/product/ 下找到对应的html配置文件,然后导入到BUILD.gn根据配置文件进行操作,这里我盲猜可以自己diy一个html并利用根目录下的build.py进行编译,不过暂时没时间进行测试
我这里直接把导入html的步骤注释掉,只加入myFirstAPP
然后尝试执行
python build.py ipcamera_hi3516dv300 -b debug
成功编译出可执行文件,不过时间有限还没去尝试上板执行
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
侵权投诉