-
Notifications
You must be signed in to change notification settings - Fork 7.7k
Open
Labels
Status: Awaiting triageIssue is waiting for triageIssue is waiting for triage
Description
Board
Esp32S3
Device Description
ESP32S3 Dev Kit-1
Hardware Configuration
代码中遇到Http网络访问编译会报NetworkClientSecure连接错误,使用的是IDF5.4.1,arduino-esp32框架版本是3.2.0
Version
latest stable Release (if not listed below)
IDE Name
VSCode
Operating System
Windows11
Flash frequency
40MHZ
PSRAM enabled
yes
Upload speed
115200
Description
代码中遇到Http网络访问编译会报NetworkClientSecure连接错误,使用的是IDF5.4.1,arduino-esp32框架版本是3.2.0
Sketch
class Speaker {
private:
int bclk, lrc, dout;
// Audio audio;
static void playDelegate(void *pvParameters) {
Speaker* instance = static_cast<Speaker*>(pvParameters);
while(1) {
instance->loop();
delay(1);
}
}
void loop();
static const char* TAG;
static const size_t AUDIO_BUFFER_SIZE = 8192;
static const size_t OUTPUT_BUFFER_SIZE = 4096;
// WiFiClientSecure client; // 安全网络客户端
URLStream urlStream; // 音频流
I2SStream i2s; // I2S输出
MP3DecoderHelix decoder; // Helix MP3解码器
EncodedAudioStream audioOutput;// 解码后音频流
StreamCopy copier; // 用于流复制
bool is_playing;
public:
Speaker(int bclk, int lrc, int dout) : bclk(bclk), lrc(lrc), dout(dout),
audioOutput(&i2s, &decoder),
copier(audioOutput, urlStream), // 初始化流复制器
is_playing(false) {
}
void setup();
void play(const char* source);
void stop();
void setVolume(float volume);
};
#endif
#include "Speaker.h"
// #define I2S_DOUT 15
// #define I2S_BCLK 16
// #define I2S_LRC 17
void Speaker::setup() {
// 配置I2S - 根据实际硬件修改
auto config = i2s.defaultConfig(TX_MODE);
config.pin_ws = 25; // 更换为你的引脚
config.pin_bck = 26;
config.pin_data = 27;
config.sample_rate = 44100;
config.bits_per_sample = 16;
config.channels = 2;
i2s.begin(config);
// 配置音频处理流
audioOutput.begin();
// 配置安全客户端(跳过证书验证)
// client.setInsecure();
// audio.setPinout(bclk, lrc, dout);
// audio.setVolume(18);
// xTaskCreatePinnedToCore(&Speaker::playDelegate, "SpeakerTask", 4096 * 2, this, 1, NULL, 0);
}
void Speaker::play(const char* source) {
if (is_playing) stop();
Serial.printf("Playing: %s\n", source);
is_playing = true;
// 打开网络流
urlStream.begin(source);
// // 重置复制器
// copier.resize
// 开始播放
while (urlStream && is_playing) {
copier.copy(); // 复制数据到解码器
delay(1); // 防止看门狗复位
}
stop();
}
void Speaker::stop() {
if (!is_playing) return;
is_playing = false;
urlStream.end();
audioOutput.flush();
Serial.println("Playback stopped");
}
void Speaker::setVolume(float volume) {
// 设置音量 (0.0 ~ 1.0)
// i2s.setVolume(volume);
}
void Speaker::loop() {
// audio.loop();
}
const char* Speaker::TAG = "Speaker";
Debug Message
报错日志如下:
`[7/9] Linking CXX executable main.elf
FAILED: main.elf
C:\Windows\system32\cmd.exe /C "cd . && D:\Espressif\tools\xtensa-esp-elf\esp-14.2.0_20241119\xtensa-esp-elf\bin\xtensa-esp32s3-elf-g++.exe -mlongcalls -fno-builtin-memcpy -fno-builtin-memset -fno-builtin-bzero -fno-builtin-stpcpy -fno-builtin-strncpy -Wl,--cref -Wl,--defsym=IDF_TARGET_ESP32S3=0 -Wl,--Map=D:/Espressif-projects/hello_world/build/main.map -Wl,--no-warn-rwx-segments -Wl,--orphan-handling=warn -fno-rtti -fno-lto -Wl,--gc-sections -Wl,--warn-common -T esp32s3.peripherals.ld -T esp32s3.rom.ld -T esp32s3.rom.api.ld -T esp32s3.rom.bt_funcs.ld -T esp32s3.rom.libgcc.ld -T esp32s3.rom.wdt.ld -T esp32s3.rom.version.ld -T esp32s3.rom.newlib.ld -T memory.ld -T sections.ld @CMakeFiles\main.elf.rsp -o main.elf && cd ."
D:/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: esp-idf/espressif__arduino-esp32/libespressif__arduino-esp32.a(NetworkClientSecure.cpp.obj):(.literal._ZN19NetworkClientSecure4stopEv+0x0): undefined reference to `stop_ssl_socket(sslclient_context*)'
D:/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: esp-idf/espressif__arduino-esp32/libespressif__arduino-esp32.a(NetworkClientSecure.cpp.obj):(.literal._ZN19NetworkClientSecure5writeEPKhj+0xc): undefined reference to `send_net_data(sslclient_context*, unsigned char const*, unsigned int)'
D:/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: esp-idf/espressif__arduino-esp32/libespressif__arduino-esp32.a(NetworkClientSecure.cpp.obj):(.literal._ZN19NetworkClientSecure5writeEPKhj+0x10): undefined reference to `send_ssl_data(sslclient_context*, unsigned char const*, unsigned int)'
D:/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: esp-idf/espressif__arduino-esp32/libespressif__arduino-esp32.a(NetworkClientSecure.cpp.obj):(.literal._ZN19NetworkClientSecure4readEPhj+0x8): undefined reference to `get_net_receive(sslclient_context*, unsigned char*, int)'
D:/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: esp-idf/espressif__arduino-esp32/libespressif__arduino-esp32.a(NetworkClientSecure.cpp.obj):(.literal._ZN19NetworkClientSecure4readEPhj+0xc): undefined reference to `get_ssl_receive(sslclient_context*, unsigned char*, int)'
D:/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: esp-idf/espressif__arduino-esp32/libespressif__arduino-esp32.a(NetworkClientSecure.cpp.obj):(.literal._ZN19NetworkClientSecure9availableEv+0xc): undefined reference to `peek_net_receive(sslclient_context*, int)'
D:/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: esp-idf/espressif__arduino-esp32/libespressif__arduino-esp32.a(NetworkClientSecure.cpp.obj):(.literal._ZN19NetworkClientSecure9availableEv+0x10): undefined reference to `data_to_read(sslclient_context*)'
D:/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: esp-idf/espressif__arduino-esp32/libespressif__arduino-esp32.a(NetworkClientSecure.cpp.obj):(.literal._ZN19NetworkClientSecure7connectE9IPAddresstPKcS2_S2_S2_+0x8): undefined reference to `start_ssl_client(sslclient_context*, IPAddress const&, unsigned long, char const*, int, char const*, bool, char const*, char const*, char const*, char const*, bool, char const**)'
D:/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: esp-idf/espressif__arduino-esp32/libespressif__arduino-esp32.a(NetworkClientSecure.cpp.obj):(.literal._ZN19NetworkClientSecure7connectE9IPAddresstPKcS2_S2_S2_+0xc): undefined reference to `ssl_starttls_handshake(sslclient_context*)'
D:/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: esp-idf/espressif__arduino-esp32/libespressif__arduino-esp32.a(NetworkClientSecure.cpp.obj):(.literal._ZN19NetworkClientSecureC2Ev+0x4): undefined reference to `ssl_init(sslclient_context*)'
D:/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: esp-idf/espressif__arduino-esp32/libespressif__arduino-esp32.a(NetworkClientSecure.cpp.obj): in function `NetworkClientSecure::stop()':
D:/Espressif-projects/hello_world/managed_components/espressif__arduino-esp32/libraries/NetworkClientSecure/src/NetworkClientSecure.cpp:102:(.text._ZN19NetworkClientSecure4stopEv+0x6): undefined reference to `stop_ssl_socket(sslclient_context*)'
D:/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: esp-idf/espressif__arduino-esp32/libespressif__arduino-esp32.a(NetworkClientSecure.cpp.obj): in function `NetworkClientSecure::NetworkClientSecure()::{lambda(sslclient_context*)#1}::operator()(sslclient_context*) const':
D:/Espressif-projects/hello_world/managed_components/espressif__arduino-esp32/libraries/NetworkClientSecure/src/NetworkClientSecure.cpp:36:(.text._ZZN19NetworkClientSecureC4EvENKUlP17sslclient_contextE_clES1_+0x6): undefined reference to `stop_ssl_socket(sslclient_context*)'
D:/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: esp-idf/espressif__arduino-esp32/libespressif__arduino-esp32.a(NetworkClientSecure.cpp.obj): in function `NetworkClientSecure::write(unsigned char const*, unsigned int)':
D:/Espressif-projects/hello_world/managed_components/espressif__arduino-esp32/libraries/NetworkClientSecure/src/NetworkClientSecure.cpp:231:(.text._ZN19NetworkClientSecure5writeEPKhj+0x16): undefined reference to `send_net_data(sslclient_context*, unsigned char const*, unsigned int)'
D:/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: D:/Espressif-projects/hello_world/managed_components/espressif__arduino-esp32/libraries/NetworkClientSecure/src/NetworkClientSecure.cpp:239:(.text._ZN19NetworkClientSecure5writeEPKhj+0x74): undefined reference to `send_ssl_data(sslclient_context*, unsigned char const*, unsigned int)'
D:/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: esp-idf/espressif__arduino-esp32/libespressif__arduino-esp32.a(NetworkClientSecure.cpp.obj): in function `NetworkClientSecure::read(unsigned char*, unsigned int)':
D:/Espressif-projects/hello_world/managed_components/espressif__arduino-esp32/libraries/NetworkClientSecure/src/NetworkClientSecure.cpp:253:(.text._ZN19NetworkClientSecure4readEPhj+0x10): undefined reference to `get_net_receive(sslclient_context*, unsigned char*, int)'
D:/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: D:/Espressif-projects/hello_world/managed_components/espressif__arduino-esp32/libraries/NetworkClientSecure/src/NetworkClientSecure.cpp:286:(.text._ZN19NetworkClientSecure4readEPhj+0xd8): undefined reference to `get_ssl_receive(sslclient_context*, unsigned char*, int)'
D:/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: esp-idf/espressif__arduino-esp32/libespressif__arduino-esp32.a(NetworkClientSecure.cpp.obj): in function `NetworkClientSecure::available()':
D:/Espressif-projects/hello_world/managed_components/espressif__arduino-esp32/libraries/NetworkClientSecure/src/NetworkClientSecure.cpp:298:(.text._ZN19NetworkClientSecure9availableEv+0xe): undefined reference to `peek_net_receive(sslclient_context*, int)'
D:/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: D:/Espressif-projects/hello_world/managed_components/espressif__arduino-esp32/libraries/NetworkClientSecure/src/NetworkClientSecure.cpp:302:(.text._ZN19NetworkClientSecure9availableEv+0x2e): undefined reference to `data_to_read(sslclient_context*)'
D:/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: esp-idf/espressif__arduino-esp32/libespressif__arduino-esp32.a(NetworkClientSecure.cpp.obj): in function `NetworkClientSecure::connect(IPAddress, unsigned short, char const*, char const*, char const*, char const*)':
D:/Espressif-projects/hello_world/managed_components/espressif__arduino-esp32/libraries/NetworkClientSecure/src/NetworkClientSecure.cpp:148:(.text._ZN19NetworkClientSecure7connectE9IPAddresstPKcS2_S2_S2_+0x2c): undefined reference to `start_ssl_client(sslclient_context*, IPAddress const&, unsigned long, char const*, int, char const*, bool, char const*, char const*, char const*, char const*, bool, char const**)'
D:/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: D:/Espressif-projects/hello_world/managed_components/espressif__arduino-esp32/libraries/NetworkClientSecure/src/NetworkClientSecure.cpp:151:(.text._ZN19NetworkClientSecure7connectE9IPAddresstPKcS2_S2_S2_+0x3f): undefined reference to `ssl_starttls_handshake(sslclient_context*)'
D:/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: esp-idf/espressif__arduino-esp32/libespressif__arduino-esp32.a(NetworkClientSecure.cpp.obj): in function `NetworkClientSecure::connect(char const*, unsigned short, char const*, char const*)':
D:/Espressif-projects/hello_world/managed_components/espressif__arduino-esp32/libraries/NetworkClientSecure/src/NetworkClientSecure.cpp:196:(.text._ZN19NetworkClientSecure7connectEPKctS1_S1_+0x40): undefined reference to `start_ssl_client(sslclient_context*, IPAddress const&, unsigned long, char const*, int, char const*, bool, char const*, char const*, char const*, char const*, bool, char const**)'
D:/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: esp-idf/espressif__arduino-esp32/libespressif__arduino-esp32.a(NetworkClientSecure.cpp.obj): in function `NetworkClientSecure::NetworkClientSecure()':
D:/Espressif-projects/hello_world/managed_components/espressif__arduino-esp32/libraries/NetworkClientSecure/src/NetworkClientSecure.cpp:35:(.text._ZN19NetworkClientSecureC2Ev+0x33): undefined reference to `ssl_init(sslclient_context*)'
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
* The terminal process "d:\Espressif\tools\tools\ninja\1.12.1\ninja.EXE" terminated with exit code: 1. `
Other Steps to Reproduce
No response
I have checked existing issues, online documentation and the Troubleshooting Guide
- I confirm I have checked existing issues, online documentation and Troubleshooting guide.
Metadata
Metadata
Assignees
Labels
Status: Awaiting triageIssue is waiting for triageIssue is waiting for triage