鸿蒙wifiiot编译问题解决_failed building output\bin\hi3861_wifiiot_app.out:-程序员宅基地

技术标签: udp  linux  linux驱动开发  

终于开始搞了。上来就报错。

rm/system -Lbuild/build_tmp/scripts -Lbuild/libs -Lbuild/libs/hi3861/release/no_mesh -Lbuild/scripts -Lohos/libs -Tbuild/build_tmp/scripts/link.lds -Map=output/bin/Hi3861_wifiiot_app.map -o output/bin/Hi3861_wifiiot_app.out --start-group --no-whole-archive --whole-archive -lHwKeystoreSDK -ladc -lat -lauthmanager -lbootstrap -lbroadcast -lc_flash -lcfg -lcjson_static -lcmsis -lcommon_lite -lcpup -ldiag -ldiscovery -ldrv -lflash -lgcc -lgpio -lhal_file_static -lhal_iothardware -lhal_sysparam -lhal_token_static -lhichainsdk -lhilog_lite -lhiview_lite -lio -liothardware -liperf -lkal -lled_example -llitekernel_flash -lltoswpa -llwip -lm_flash -lmbedtls -lnative_file -lparttab -lres_cfg -lsamgr -lsamgr_adapter -lsamgr_source -lsdio -lsec_flash -lsensing_demo -lspiffs -lsysparam -lsystem -ltoken_static -ltrans_service -ltsensor -luart -lupg -lutils_kv_store -lwifi -lwifi_flash -lwifiiot_app -lwifiservice -lwpa --end-group
riscv32-unknown-elf-ld: ohos/libs/libhal_iothardware.a(hal_wifiiot_i2c.o): in function `.L0 ':
hal_wifiiot_i2c.c:(.text.HalI2cWrite+0x12): undefined reference to `hi_i2c_write'
riscv32-unknown-elf-ld: hal_wifiiot_i2c.c:(.text.HalI2cRead+0x12): undefined reference to `hi_i2c_read'
riscv32-unknown-elf-ld: hal_wifiiot_i2c.c:(.text.HalI2cInit+0x12): undefined reference to `hi_i2c_init'
riscv32-unknown-elf-ld: ohos/libs/libhal_iothardware.a(hal_wifiiot_pwm.o): in function `.L0 ':
hal_wifiiot_pwm.c:(.text.HalPwmInit+0x16): undefined reference to `hi_pwm_set_clock'
riscv32-unknown-elf-ld: hal_wifiiot_pwm.c:(.text.HalPwmInit+0x24): undefined reference to `hi_pwm_init'
riscv32-unknown-elf-ld: hal_wifiiot_pwm.c:(.text.HalPwmStart+0x12): undefined reference to `hi_pwm_start'
riscv32-unknown-elf-ld: hal_wifiiot_pwm.c:(.text.HalPwmStop+0x12): undefined reference to `hi_pwm_stop'
scons: *** [output/bin/Hi3861_wifiiot_app.out] Error 1
BUILD FAILED!!!!
Failed building output/bin/Hi3861_wifiiot_app.out: Error 1
Traceback (most recent call last):
  File "../../build/lite/build_ext_components.py", line 64, in <module>
    sys.exit(main())
  File "../../build/lite/build_ext_components.py", line 58, in main
    cmd_exec(args.command)
  File "../../build/lite/build_ext_components.py", line 32, in cmd_exec
    raise Exception("{} failed, return code is {}".format(cmd, ret_code))
Exception: ['sh', 'hm_build.sh'] failed, return code is 2
ninja: build stopped: subcommand failed.
you can check build log in /home/tony/homo/out/wifiiot/build.log
/home/tony/homo/tools/ninja/ninja -w dupbuild=warn -C /home/tony/homo/out/wifiiot failed, return code is 1
usage: 
 

解决方法:

1. 编译过程中报错:undefined reference to `hi_pwm_init` 等几个 `hi_pwm_`开头的函数,
   * **原因:** 因为默认情况下,hi3861_sdk中,PWM的CONFIG选项没有打开
   * **解决:** 修改`vendor\hisi\hi3861\hi3861\build\config\usr_config.mk`文件中的`CONFIG_PWM_SUPPORT`行:
     * `# CONFIG_PWM_SUPPORT is not set`修改为`CONFIG_PWM_SUPPORT=y`

2. 编译过程中报错:undefined reference to `hi_i2c_init` 等几个 `hi_i2c_`开头的函数,

   * **原因:** 因为默认情况下,hi3861_sdk中,I2C的CONFIG选项没有打开

   * **解决:** 修改`vendor\hisi\hi3861\hi3861\build\config\usr_config.mk`文件中的`CONFIG_I2C_SUPPORT`行:
     * `# CONFIG_I2C_SUPPORT is not set`修改为`CONFIG_I2C_SUPPORT=y`
 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u011827554/article/details/109548368

智能推荐

常见Web攻击简介_常用网页攻击 xss-程序员宅基地

文章浏览阅读693次。文章目录常见Web攻击简介1 安全三要素2 安全方案3 浏览器安全策略4 跨站脚本攻击(XSS)5 跨站点请求伪造(CSRF)6 点击劫持(Click Jacking)7 SQL注入8 分布式拒绝服务(DDOS)8.1 CC攻击常见Web攻击简介1 安全三要素机密性:要求保护数据内容不能泄露,加密是实现机密性要求的常见手段完整性:要求保护数据内容是完整的、没有被篡改的,数字签名是常见手段可用性:要求保护资源是随需而得2 安全方案Secure by Default:设置白名单、黑名单最小_常用网页攻击 xss

latex段落取消缩进_latex取消首行缩进-程序员宅基地

文章浏览阅读9.7k次。\noindent和\setlength{\parindent}{0cm}只能在首段生效,如果在一个paragraph中间某些位置使用的话是不生效的。解决办法也很简单,用{}分隔作用域:## 反例:\setlength{\parindent}{0cm}You are beautiful.\setlength{\parindent}{0cm}I am cute.上面这段,第二句话I am cute.是没有办法取消缩进的.## 正确示范:{\setlength{\parindent}{0_latex取消首行缩进

两千行PHP学习笔记-程序员宅基地

文章浏览阅读73次。//语法错误(syntax error)在语法分析阶段,源代码并未被执行,故不会有任何输出。/* 【命名规则】 */常量名 类常量建议全大写,单词间用下划线分隔 // MIN_WIDTH变量名建议用下划线方式分隔 // $var_name函数名建议用驼峰命名法 // varName定界符建议全大写 // <<<DING, <<<'DING'文件名建议..._两千行php学习笔记

Task03查找1_while i+1 and n not in seen-程序员宅基地

文章浏览阅读143次。搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0解题思路:二分查找定义左侧下标left,右侧下标right,计算中间下标mid每次根据nums[mid]和ta_while i+1 and n not in seen

对象检测的进化:从传统方法到SSD和RCNN-程序员宅基地

文章浏览阅读266次,点赞3次,收藏10次。1.背景介绍对象检测是计算机视觉领域的一个重要任务,它旨在在图像中识别和定位具有特定属性的对象。随着计算机视觉技术的不断发展,对象检测方法也不断演进,从传统的手工工程式方法逐渐发展到深度学习方法。在这篇文章中,我们将探讨对象检测的进化,从传统方法到SSD(Single Shot MultiBox Detector)和R-CNN(Region-based Convolutional Neural...

系统级性能分析工具perf的介绍与使用_simpleperf ubuntu-程序员宅基地

文章浏览阅读3.6k次。测试环境:Ubuntu16.04 +Kernel:4.4.0-31系统级性能优化通常包括两个阶段:性能剖析(performance profiling)和代码优化。性能剖析的目标是寻找性能瓶颈,查找引发性能问题的原因及热点代码。代码优化的目标是针对具体性能问题而优化代码或编译选项,以改善软件性能。在性能剖析阶段,需要借助于现有的profiling工具,如perf等。在..._simpleperf ubuntu

随便推点

GPIO端口输入读取与EXTI外部中断_如何读取gpio的输入值-程序员宅基地

文章浏览阅读555次。再例如:我分组2,就代表我高两位用于配置抢占优先级,低两位用于配置响应优先级,这个时候我抢占优先级可以是0-3任意数,我响应优先级也可以是0-3任意数(两位二进制可以代表0-3任意数)使用NVIC统一管理中断,每个中断通道都拥有16个可编程的优先等级,这里的优先级可以分为抢占优先级和响应优先级,可以对优先级进行分组。例如:我分组0就代表我没有设置抢占优先级,4位二进制全部用来表示响应优先级,这个时候我响应优先级可以是0-15任意数。通过分组后你就知道了抢占优先级和响应优先级可以设置的具体数是多少。_如何读取gpio的输入值

循环结构习题:输出同构数_【问题描述】输出两个整数a,b (0<=a, b<=99)间的所有同构数 如果正整数n是它平方-程序员宅基地

文章浏览阅读767次。Description编一程序,输出2~999之间的所有同构数。所谓同构数是指这样的数,它出现在它的平方的右侧,如5的平方=25,25的右端是5,所以5是一个同构数。Input输入仅一行,输入2个整数,比如2和 9Output输出多行,分行输出2到9之间的所有的同构数。Sample Input2 9Sample Output56SUBMIT#include <stdio.h>int main(){ int a,b,i,t; scanf("%_【问题描述】输出两个整数a,b (0<=a, b<=99)间的所有同构数 如果正整数n是它平方

php 二位数组的函数,PHP二维数组排序函数_php-程序员宅基地

文章浏览阅读169次。HP一维数组的排序可以用sort(),asort(),arsort()等函数,但是php二维数组的排序需要自定义。以下函数是对一个给定的二维数组按照指定的键值进行排序,先看函数定义:function array_sort($arr,$keys,$type='asc'){ $keysvalue = $new_array = array(); foreach ($arr as $k=>$v..._php二维数组排序函数

立创EDA库导入AD库_立创eda导入ad库-程序员宅基地

文章浏览阅读4.6k次,点赞4次,收藏12次。立创EDA库导入AD库步骤_立创eda导入ad库

人脸识别:face-api.js库-程序员宅基地

文章浏览阅读1.3k次,点赞32次,收藏13次。Tracking.js 是一个独立的JavaScript库,用于跟踪从相机实时收到的数据。跟踪的数据既可以是颜色,也可以是人,也就是说我们可以通过检测到某特定颜色,或者检测一个人体/脸的出现与移动,来触发JavaScript 事件。还有一个我觉得不错的功能就是,截取摄像头的图像,对于一些网站用这个功能来设置用户头像也是个很炫的功能。// 否则,使用Promise将调用包装到旧的navigator.getUserMedia。// 避免在新的浏览器中使用它,因为它正在被弃用。// 绘制图片(拍照功能)_face-api.js

css外边距塌陷(margin-top无效果)原因和解决办法_外边距塌陷问题-程序员宅基地

文章浏览阅读2.9k次,点赞3次,收藏11次。有时我们做了外边距,但是没有取得所设想的效果,或者根本没有效果,那这是什么原因呢,这篇文章会为你解惑。_外边距塌陷问题

推荐文章

热门文章

相关标签