1. 编译报错缺少GL/glx.h
问题现象:
分析:
- 使用find命令查找Openharmony整体代码中glx.h
./workspace/master/third_party/mesa3d/include/GL/glx.h
- 查看编译出错的cpp编译参数,未找到-I ${path}/third_party/third_party/include这样的编译参数(其中path代指路径)
我们知道编译器搜索的默认路径为:
/usr/include:系统级别的头文件。
/usr/local/include:本地安装软件的头文件。
./:当前目录。
在默认路径中查找glx.h,均未找到。故,环境没有安装对应的库。
解决办法:
使用apt-get 安装一下libgl1-mesa-dev库即可。
2. 编译报错缺少X11/Xcursor/Xcursor.h
问题现象:
分析:
- 使用find命令查找Openharmony整体代码中Xcursor.h。未找到。
- 在默认路径中查找Xcursor.h,均未找到。故,环境没有安装对应的库。
解决办法:
使用apt-get 安装一下libxcursor-dev库即可。
3. 编译报错缺少X11/extensions/Xrandr.h
问题现象:
分析:
- 使用find命令查找Openharmony整体代码中Xrandr.h。未找到。
- 在默认路径中查找Xrandr.h,均未找到。故,环境没有安装对应的库。
解决办法:
使用apt-get安装一下libxrandr-dev库。
总结
一般Openharmony里面报这种找不到头文件的,然后门禁上能编译过的,参考确认过程:
先在Openharmony代码里面find一下,看看有没有这个头文件。
如果有,看编译报错的源码的编译参数有没有使用-I编译参数引入这个头文件的路径。
如果编译参数未找到源码中的头文件路径,那用的就是系统的。编译器默认搜索路径:
在默认路径下查找无果的话,则表示环境上缺少头文件所在库。使用agt-get安装对应库即可。具体库名称依头文件而定。
确定库名称的方法:
举例:缺少Xcursor.h,则打开搜索引擎,输入“缺少X11/extensions/Xrandr.h”,即可在搜索结果中找到需要安装的库名称。