导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    【小白入手xr806】helloworld踩坑”月“记

    Wireless & Analog Series
    2
    2
    1465
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • D
      Deadpersimmon LV 2 最后由 Deadpersimmon 编辑

      今天终于hello了world,非常感谢群里的大佬!真的是第一次接触linux开发qwq。由于是小白,大佬看我的文章应该会觉得废话很多,但如果真的有大佬看了,希望可以指正我的一些错误!

      看看你有没有和我差不多的经历
      1.环境的选择:直接按照官方的意思就是,windows下虚拟机跑个linux,linux用来做搭环境和编译,windows来敲代码和烧录。所以在看教程前,先去给自己安装个虚拟机里的linux吧,我装的是ubuntu18
      2.linux下)我没用过git指令:因为我之前只玩过gitkraken,git指令的使用并不是很会,我们在下载源码的时候需要用repo,repo是用来管理git的,简单说就是简化大量的git clone,方便摸鱼,一句指令能自动下载很多。但是小白直接复制教程的指令时是一定会报错的,前提是需要先下载一个git,然后需要有一个github账号,也可以是gitee等其他的开源网址,下载好git后,找到隐藏文件.ssh里面有id_rsa.pub,不一定直接点的开,我是用gedit id_rsa.pub,进去后复制里面全部内容。然后在gitee等网站里找到账号设置类似的页面,找到ssh公钥,把刚刚复制的东西丢进公钥里,直接确定就好了,这个时候相当于链接了你本地到你的gitee账户(我是这么理解的),接下来就允许你repo 了
      3.虚拟机和windows之间要传文件,传复制内容等,还需要搞一个共享文件夹,这里就自行百度吧,我当时弄的时候也稍微有点问题,根据网上的教程,好像还需要多加一步,你要手动去那个文件夹的共享设置里点一下’’共享‘‘,这一步反正我看的教程并没有说明
      4.我终于能repo了,但是发现1.0.1版本每次下载到(110/112)就卡住,换网,换日子都不行,我直接放弃了,采用了另一种方案,既然linux一切皆文件,我找到了一个分享了他的docker的UP主。于是我安装了docker,下载了他的容器,把里面的root文件整个CP了出来,里面包括了源码和需要用到的一些工具,当然主要用到的就是他的源码和通过源码编译过来的hb,这俩个偷过来,其他根据网上教程继续搞就行,路径方面,要注意一下他的源码里的gcc工具的路径,网上教程里也有提到,总之看着过一遍就行了。顺带一句,这个佬docker里的源码是1.1.2分支
      5.关于gn和ninja,看我文末给出的网址,直接用这位大佬编译完的最快,按他的方法来,亲测可以使用。如果要自己编译得到gn的话,要么去gitee上找搬运,要么翻墙去官网下。2288482c-bedd-4486-a51a-206ae5a88829-image.png
      6.跑helloworld时,按照官方教程中有这样一段
      53814823-0fb3-47e9-9e0e-39101b5ffd04-image.png
      但是我使用的源码中并没有这些,里面只有短短的一条这样的af4f51ed-80cf-4fcf-a80d-625914c7c69b-image.png 如果你用了我的方法,不用把官方的这些代码放进去,放进去会报错。如果怕影响后续什么,可以加官方的那些代码,然后把以下文件的那句话注释掉,也是可以编译通过的。698517fc-71d5-4402-904e-5529cd9cdb9b-image.png 我是建议加官方的代码段,然后注释掉那条,我猜测可能是别的地方也有包含了这个地方,导致出现重复编译什么的,加了总比没加好把,虽然我测试了2种方法,helloworld和LED都是能正常跑的,但是后面的大项目就不知道了。
      7.当你复制官方文档里的代码到vscode中时,在左侧可能会出现这种东西,千万不能忽略,这是编码的问题。
      44fb58b0-61fe-4bae-a800-fcfcf846c4f0-image.png
      这里要感谢小叶大佬点拨了我。如果你也遇到这种问题了,只需要把前面的空格删掉,删到代码跑到上面那一行然后再按回车回去,或者整行重打,方法很多。
      8.通过前面的,我终于能成功编译了,我兴高采烈的下载了img,恩~看着没啥问题,等等?为什么不打印hello world?我懵了呀,我确定我是编译了hello_demo。后来再另一篇贴里,找到了关键点,就是linux开发还需要手动加一下一个东西,具体是这样LS)J`TMDFF2P(W5%E(6%AL8.png
      第三条,libapp_hello.a,具体命名规则就是,你写的那个‘’app_***‘’名字前加个lib,比如我还写了一个app_led,那这句话就要改成libapp_led.a
      9.跑wlan_demo时出现在编译的最后阶段出现报错,一开始还以为是配置问题,仔细看了全部报错,发现有这样一句话Overlapped size: 4096 Byte(4kB),猜测是代码太大了,因为如果把OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libapp_WlanTest.a这里注释掉就没问题,可见确实是最后一步整合二进制文件时出的问题。解决地址在下面提供。因为不编译控制台了,记得把这里注释掉哦,那篇文章中未提及,如下:e76dc401-9867-48f7-8a03-881f18ca1fcf-image.png

      网址汇总:

      偷编译完的源码
      gn、ninja
      固件烧录
      官方手册
      佬的教程
      别人的坑总结
      code字符问题解决方法
      关于第7条避坑的原帖
      第9条代码溢出解决方法

      1 条回复 最后回复 回复 引用 分享 3
      • Pinned by  xiaowenge xiaowenge 
      • Unpinned by  System 
      • aldfaaa
        whycan矿工-小叶 LV 7 最后由 编辑

        桃花潭水深千尺, 不及小弟赠我情

        1 条回复 最后回复 回复 引用 分享 0
        • 1 / 1
        • First post
          Last post

        Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

        行为准则 | 用户协议 | 隐私权政策