OpenHarmony编译../prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/arm-linux-ohos/libbundle_ndk.z.so
按照官网教程拉下来了openharmony代码,配置好环境,按照指导编译报错,你是否很崩溃,别急,根据编译报错信息仔细分析,就能看到是系统部分文件配置版本较高,和源码中的SDK版本不匹配导致,只需要简单重新修改下部分配置文件即可
问题1
问题描述:…/…/prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/arm-linux-ohos/libbundle_ndk.z.so
根据此路径查看路径下根本没有18的SDK,故需要将源码中的此类路径linux/18/native统一换成linux/15/native即可继续编译
使用vscode打开源码目录,通过批量替换即可解决此问题
问题2

根据编译报错提示,发现是/home/curry/openharmony/sourceCode/arkcompiler/runtime_core/static_core/irtoc/lang/options.rb:41这个路径文件41行,需要修改exists函数为exist即可解决此问题
问题3
问题描述:FAILED: obj/base/powermgr/power_manager/power_dialog/power_dialog_hap/unsigned_hap_path_list.json
还是老规矩,先检查这个路径下,的确欸有这几个文件
尝试单独编译此模块power_dialog_hap
,使用./build.sh --product-name rk3568 --build-target power_dialog_hap进行编译,发现还是刚才的报错信息
打开此文件,发现这个二进制的SDK版本信息均为18,鉴于问题1的经验,须修改为15
再次尝试编译此模块,可编译成功
问题4
问题描述:error: unknown type name ‘uint8_t’
这种多半是头文件缺少c库,在报错文件中添加"stdint.h"可解决
问题5

需要安装libtinfo5这个库,由于我的ubuntu版本是24.04,如果直接使用sudo apt-get install libtinfo5安装他会显示已经安装了高版本的libtinfo6,所以需要下载到本地安装,使用如下命令行后,解决此编译问题
wget http://security.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
sudo apt-get install ./libtinfo5_6.3-2ubuntu0.1_amd64.deb
问题6
其他一些编译问题基本都是头文件涉及到的C库问题,基于报错信息,适当在报错文件中添加相关#include "stdint.h"或#include "string.h"等头文件均可解决,在此不一一列举,基于报错函数查询相关C库头文件即可。
解决如上问题最后也是编译成功啦
更多推荐
所有评论(0)