ESP-ADF dueros示例编译不通过

wanxuncpx
Posts: 2
Joined: Sun Jul 19, 2020 12:46 am

ESP-ADF dueros示例编译不通过

Postby wanxuncpx » Sun Jul 19, 2020 12:56 am

主要错误发生在链接为主程序上, 这个问题卡了我四天了, 初学ESP-ADF不太懂,请大佬帮忙!
以下是编译的报错信息, 之前编译应该都是OK的, 就死在了链接环节, 好像是librecorder_engine.a录音引擎库,使用了get_wakenet_iface(), et_wakenet_coeff()以及VAD检测的一些函数,但在链接时未找到.

我如何操作才能让ESP_ADF中的Dueros示例编译通过呢? 谢谢各位大佬.

[6/7] Linking CXX executable esp_dueros.elf
FAILED: esp_dueros.elf
cmd.exe /C "cd . && D:\User\.espressif\tools\xtensa-esp32-elf\esp-2019r2-8.2.0\xtensa-esp32-elf\bin\xtensa-esp32-elf-g++.exe -mlongcalls -Wno-frame-address -nostdlib @CMakeFiles\esp_dueros.elf.rsp -o esp_dueros.elf && cd ."
d:/user/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: D:/User/Desktop/esp-adf/components/esp-adf-libs/recorder_engine/lib/esp32\librecorder_engine.a(recorder_engine.c.obj):(.literal.rec_engine_task+0xe0): undefined reference to `get_wakenet_iface'
d:/user/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: D:/User/Desktop/esp-adf/components/esp-adf-libs/recorder_engine/lib/esp32\librecorder_engine.a(recorder_engine.c.obj):(.literal.rec_engine_task+0xe4): undefined reference to `get_wakenet_coeff'
d:/user/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: D:/User/Desktop/esp-adf/components/esp-adf-libs/recorder_engine/lib/esp32\librecorder_engine.a(recorder_engine.c.obj):(.literal.rec_engine_task+0xe8): undefined reference to `vad_create'
d:/user/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: D:/User/Desktop/esp-adf/components/esp-adf-libs/recorder_engine/lib/esp32\librecorder_engine.a(recorder_engine.c.obj):(.literal.rec_engine_task+0xec): undefined reference to `vad_destroy'
d:/user/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: D:/User/Desktop/esp-adf/components/esp-adf-libs/recorder_engine/lib/esp32\librecorder_engine.a(recorder_engine.c.obj):(.literal.rec_engine_task+0xf4): undefined reference to `vad_process'
d:/user/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: D:/User/Desktop/esp-adf/components/esp-adf-libs/recorder_engine/lib/esp32\librecorder_engine.a(recorder_engine.c.obj): in function `rec_engine_task':
/home/houhaiyan/esp-audio-adf-projects/esp-adf-libs-source/recorder_engine/recorder_engine.c:287: undefined reference to `get_wakenet_iface'
d:/user/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: /home/houhaiyan/esp-audio-adf-projects/esp-adf-libs-source/recorder_engine/recorder_engine.c:299: undefined reference to `get_wakenet_coeff'
d:/user/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: /home/houhaiyan/esp-audio-adf-projects/esp-adf-libs-source/recorder_engine/recorder_engine.c:307: undefined reference to `vad_create'
d:/user/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: /home/houhaiyan/esp-audio-adf-projects/esp-adf-libs-source/recorder_engine/recorder_engine.c:642: undefined reference to `vad_destroy'
d:/user/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: /home/houhaiyan/esp-audio-adf-projects/esp-adf-libs-source/recorder_engine/recorder_engine.c:449: undefined reference to `vad_process'

Tony Tian
Posts: 1
Joined: Sat Jul 25, 2020 1:32 am

Re: ESP-ADF dueros示例编译不通过

Postby Tony Tian » Sat Jul 25, 2020 1:35 am

我有同样的问题,求支持!

wanxuncpx
Posts: 2
Joined: Sun Jul 19, 2020 12:46 am

Re: ESP-ADF dueros示例编译不通过

Postby wanxuncpx » Tue Jul 28, 2020 1:30 am

问题解决了, 还是编译环境的问题:
1. 首先ESP-ADF框架需要ESP-IDF的支持(只能用V3.3.2的IDF工具),不要用V4.0的IDF!!!!!!!!!!!!!!!
2. 要利用ESP-ADF内的idf_patches文件夹中三个给IDF下的源码打上补丁, 然后 用adf_http_stream.patch给ADF下的源码打上补丁.
3. 最好用esp-idf-tools-setup-2.3.exe安装!!!, 安装路径不要自己选, 默认即可(工具对路劲中文或空格敏感,以免后面麻烦)
4. 安装前线设定python源, 否者默认的境外python源死活下载不下来,具体方法参考官网。

18867602875
Posts: 2
Joined: Thu Sep 30, 2021 5:13 am

Re: ESP-ADF dueros示例编译不通过

Postby 18867602875 » Thu Sep 30, 2021 5:29 am

大神,你好,我在ubuntu20上面搭建了ESP-IDF 4.0的环境,hello world编译通过了,但是编译公司SDK的时候,也是报这个错误,有解决方法吗

ESP_HengYC
Posts: 184
Joined: Fri Dec 15, 2017 2:45 am

Re: ESP-ADF dueros示例编译不通过

Postby ESP_HengYC » Tue Oct 12, 2021 11:37 am

Hi all,

大家好, 这个问题似乎是 ADF 的submodule 没有拉取完整导致的, 你可以在 ADF 的文件夹下 使用 git submodule update --init --recursiv ,命令来更新 submodule。 更新完毕,再次编译即可, 如有问题可以在这里反馈,谢谢!

ESP_HengYC
Posts: 184
Joined: Fri Dec 15, 2017 2:45 am

Re: ESP-ADF dueros示例编译不通过

Postby ESP_HengYC » Fri Oct 15, 2021 7:11 am

wanxuncpx wrote:
Tue Jul 28, 2020 1:30 am
问题解决了, 还是编译环境的问题:
1. 首先ESP-ADF框架需要ESP-IDF的支持(只能用V3.3.2的IDF工具),不要用V4.0的IDF!!!!!!!!!!!!!!!
2. 要利用ESP-ADF内的idf_patches文件夹中三个给IDF下的源码打上补丁, 然后 用adf_http_stream.patch给ADF下的源码打上补丁.
3. 最好用esp-idf-tools-setup-2.3.exe安装!!!, 安装路径不要自己选, 默认即可(工具对路劲中文或空格敏感,以免后面麻烦)
4. 安装前线设定python源, 否者默认的境外python源死活下载不下来,具体方法参考官网。
当前 ADF 支持 IDF 版本 v3.3, v4.0, v4.1, v4.2, v4.3

Who is online

Users browsing this forum: No registered users and 6 guests