HarmonyOS编译踩坑(Windows+VMWare环境) - HarmonyOS技术社区 - 电子技术论坛 - 广受欢迎的专业电子论坛
分享 收藏 返回

[文章]

HarmonyOS编译踩坑(Windows+VMWare环境)

顺利拿到板子,开搞,第一步当然是环境搭建。论坛的大大们早就为我们准备好了详细的攻略。笔者并没有一***立的Ubuntu机器,于是在Windows上安装VMWare虚拟机作为编译HARMonyOS的Linux环境。过程有些曲折,几次想要放弃,想直接伸手拿做好的Ubuntu镜像,不过坚持到最后还是成功了。现在想想虽然花的时间有点多,但也非常值得,让我对鸿蒙OS的结构和编译过程有了一个更加直观的认识。下面讲一下过程中踩过的坑,希望帮助大家少走弯路。
        笔者的环境是Ubuntu 16.0,运行在VMWare 14中。物理机是Windows10。
       一. Linux的编译环境搭建
        直接参考官方文档就好了(传送门)。各个工具的安装版本,推荐和文章中一致,实在不行高一点也可以,如果低了就有可能留下隐患,且很难排查。其中SCons不是很好下载,如果网络不好的,它的官方网站经常访问不到。灵活运用下载工具,再拷贝进Ubuntu离线安装。
        二. 源代码编译
        推荐从镜像站点下载压缩文件,方便快捷。关于源代码放在哪里,推荐按照官方说的放在Ubuntu中,用Samba等工具设置成共享目录,再从Windows访问,进行烧录和调试。我在一开始把源代码放在了VMWare提供的共享目录中,以为这样更加方便,发现在解压源代码的时候,提示了一堆错误,大意是无法创建软连接。我也没有太在意,结果编译时的错误一个接一个。后来才了解到,VMWare的共享目录分区格式是FAT32,不支持创建软连接操作。重新拷贝源码压缩包进Ubuntu并解压后,成功编译。所以说还是老老实实的用Samba比较稳妥。
         Ubuntu共享目录设置(原文章):
  1. 1.输入如下命令:

  2. sudo apt-get install samba

  3. sudo apt-get install samba-common



  4. 2.修改samba配置文件

  5. sudo vim /etc/samba/smb.conf

  6. 在最后加入如下内容:

  7. [work]
  8.     comment = samba home directory
  9.     path = /home/harmony/
  10.     public = yes
  11.     browseable = yes
  12.     public = yes
  13.     writeable = yes
  14.     read only = no
  15.     valid users = harmony
  16.     create mask = 0777
  17.     directory mask = 0777
  18.     #force user = nobody
  19.     #force group = nogroup
  20.     available = yes



  21. 3.保存退出后,输入如下命令,设置samba密码,建议123456即可

  22. sudo smbpasswd -a harmony



  23. 4.重启samba服务

  24. sudo service smbd  restart



  25. 5.windows映射

  26. 在文件夹路径输入虚拟机的IP地址访问一下试试,最后映射成网络驱动器即可。


     三. 烧录
        官方给的烧录方案是Hiburn或者Jlink。如果用Hiburn方式可以采用DevEcoDeviceTool中的集成功能,但笔者在使用VSCode+DevEcoDeviceTool时,总是提示“因为缺少serialport模块,无法刷新端口号下拉列表...”,重新安装serialport也不能解决。最终在官方大大们的帮助下,改为直接用Hiburn工具烧录成功。


        烧录时需要注意一件事情,一般的操作流程是,设置好参数、串口号、选择烧录文件后,先不点Connect,勾选Auto burn即上电自动烧录,再点Connect,按一下板子上的RST按钮重新上电,Hiburn就会进行烧录了。这时如果想让板子跑起来,需要Disconnect一下,把Auto burn勾掉,再Connect,按RST按钮,就会看到串口打印的信息了。如下图:
        
        图中的[DEMO] Hello Harmony!就是我在HelloWorld.c中打印的内容。第一个Hello World程序就这样完成了。
        HarmonyOS对大家来说都是一个比较新的东西,一步一个脚印才能掌握扎实。这里把过程记录下来,希望对大家有所帮助。



更多回帖

×
发帖