【FFH】OpenHarmony 编译报错 原创

Coralinedoll
发布于 2022-9-18 18:44
浏览
3收藏

前言

前面对于部分源码在文件夹讲解主要是根据 Hi3861开发板来展开的。
笔记总结

源码部分重要文件夹介绍

源码的获取以及编译是用 DevEco Device Tool一站式集成开发环境搭建
具体操作请参考此处
下图是源码
【FFH】OpenHarmony 编译报错-鸿蒙开发者社区
源码的版本是3.1.1
【FFH】OpenHarmony 编译报错-鸿蒙开发者社区

Verdor文件夹

主要是一些开发厂商的配置(下图是一些开发厂商)
这里只需要了解一下,这里的代码几乎很少改动。
【FFH】OpenHarmony 编译报错-鸿蒙开发者社区

其中Hi3861 的配置:
【FFH】OpenHarmony 编译报错-鸿蒙开发者社区

device文件夹

【FFH】OpenHarmony 编译报错-鸿蒙开发者社区

这里有两个比较重要的文件夹:board 和soc
其中board是开发板的配置信息(这里也是基本上很少改动)。

【FFH】OpenHarmony 编译报错-鸿蒙开发者社区
demo

soc里面有相关开发板的demo,路径如下:
【FFH】OpenHarmony 编译报错-鸿蒙开发者社区
【FFH】OpenHarmony 编译报错-鸿蒙开发者社区
写代码时候可以参考一下demo来写。
src
soc里面还有一个比较重要的:
【FFH】OpenHarmony 编译报错-鸿蒙开发者社区
这里有一个main()函数,这里是整个板子启动以后是在这个函数里面运行的。
【FFH】OpenHarmony 编译报错-鸿蒙开发者社区
include
里面还有一个比较重要的include 文件。
这里面只要保存了 一些头文件,我们可以查看这些头文件里面的相关用法:例如IO口的复用。
【FFH】OpenHarmony 编译报错-鸿蒙开发者社区
build/config
这里面主要是一些未打开的功能,我们要使用这些功能的时候需要把注释去掉,避免报错
【FFH】OpenHarmony 编译报错-鸿蒙开发者社区
【FFH】OpenHarmony 编译报错-鸿蒙开发者社区

####application文件夹

里面有个app的文件夹是用来编写代码的。
【FFH】OpenHarmony 编译报错-鸿蒙开发者社区
在编写应用的时候一般会用到上面两个文件夹

编译报错类型

头文件丢失

解决方法:添加include对应的头文件

头文件找不到

在Build.gn里面把头文件的路径加进去(原因是BUILD.gn里面可以告诉编译器头文件去哪里找)

例:出现下图报错的时候
【FFH】OpenHarmony 编译报错-鸿蒙开发者社区
下图告诉了头文件所在的位置
【FFH】OpenHarmony 编译报错-鸿蒙开发者社区
将这个位置复制进BUILD.gn文件就可以了。
【FFH】OpenHarmony 编译报错-鸿蒙开发者社区
(注意在前面加”//“)
这里还需要注意的一个点就是这里需要打空格,不可以用Tab键代替。
【FFH】OpenHarmony 编译报错-鸿蒙开发者社区

宏找不到

解决办法:添加对应的头文件

例:出现下图报错时候
【FFH】OpenHarmony 编译报错-鸿蒙开发者社区
我们可以通过查找:

grep 报错的宏定义 * -nR

来寻找:
【FFH】OpenHarmony 编译报错-鸿蒙开发者社区
找到图中定义宏定义所存储的头文件,然后在我们所编写代码的.C文件中加上即可。
【FFH】OpenHarmony 编译报错-鸿蒙开发者社区

例:
【FFH】OpenHarmony 编译报错-鸿蒙开发者社区

通过grep来找到路径。
【FFH】OpenHarmony 编译报错-鸿蒙开发者社区
加完头文件记得在BUILD.gn里面加入头文件的路径告诉编译器寻找(方法在报错头文件找不到当中)
【FFH】OpenHarmony 编译报错-鸿蒙开发者社区

函数未定义

解决方法:

例:如果是驱动的话,打开相应驱动功能。

出现 undefined reference to  "    "

然后就在下图找到需要打开的功能
【FFH】OpenHarmony 编译报错-鸿蒙开发者社区

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2022-9-19 09:19:42修改
3
收藏 3
回复
举报
回复
    相关推荐