【HarmonyOS HiSpark AI Camera】只交叉编译自己的程序

2020-11-25 18:54:14  178 HarmonyOS HiSpark AI Camera HiSpark 润和 Hi3516DV300
分享
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文件。
1.png
自己的工程.gn内如如下
2.png
目标是生成可执行文件,具体写法参考了官方例程关于串口驱动那里,应用层的相关编写

.c就是间的helloworld
3.png

大概看了下总的BUILD.gn文件内容,大概思路就是根据我们编译的指令,比如python build.py ipcamera_hi3518ev300  就根据这个ipcamera_hi3518ev300

//build/lite/product/ 下找到对应的html配置文件,然后导入到BUILD.gn根据配置文件进行操作,这里我盲猜可以自己diy一个html并利用根目录下的build.py进行编译,不过暂时没时间进行测试


我这里直接把导入html的步骤注释掉,只加入myFirstAPP


4.png
然后尝试执行
python build.py ipcamera_hi3516dv300 -b debug
成功编译出可执行文件,不过时间有限还没去尝试上板执行
5.png 6.png



dianzi 2020-11-26 09:30:27
好帖支持一波,感谢楼主分享
回复

举报

赵然 2020-11-30 17:16:30
可以用类似Linux的方式编写。
clang -target arm-liteos --sysroot=/home/xxxx/harmonyos/prebuilts/lite/sysroot/ -o test test.c
就是这种.亲测可用。并通过自己移植的tftp传到板子上验证通过。可以正常运行。
1 1回复

举报

  • 张瀚坤 2020-12-1 20:59

    哈哈,但是复杂点的工程就可以利用我的这种方法来编译了,也不用写makefile什么的了

评论

您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发文章

最新文章