二叉树的概念及基本操作

二叉树的概念、类型与操作详解
本文详细介绍了二叉树的概念,包括其定义、特殊类型如满二叉树和完全二叉树,以及二叉树的五个基本性质。此外,还阐述了二叉树的基本操作,如前序、中序、后序遍历,层序遍历,以及如何通过前序遍历序列构建二叉树。同时,提供了计算节点数、高度、叶子节点数、第k层节点数的方法,以及查找节点和判断完全二叉树的算法。最后,讲解了二叉树的销毁操作。

一、二叉树概念

一颗二叉树是结点的一个有限集合,该集合:

        (1)为空

        (2)由一个根节点加上两棵称为左子树和右子树的二叉树组成

从上图可以看出:

        (1)二叉树不存在度大于2的结点

        (2)二叉树的子树有左右之分,次序不能颠倒,因此二叉树是有序树

二、特殊二叉树

 1、满二叉树:一个二叉树,如果每一层的结点数都达到最大值,则这个二叉树就是满二叉树。也就是说,如果一个二叉树层数为k,且总结点数是2^k-1,则它就是满二叉树。

2、完全二叉树:完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。对于深度为k的,有n个结点的二叉树,当且仅当其每一个结点都与深度为k的满二叉树中编号从1至n的结点一 一对应时称为完全二叉树。要注意满二叉树是一种特殊的完全二叉树。

举例:

三、二叉树的性质

1、若规定根节点的层数为1,则一棵非空二叉树的第i层上最多有2^(i-1)个结点。

2、若规定根节点的层数为1,则深度为h的二叉树的最大结点数为2^h-1。

3、对任何一颗二叉树,如果度为0的叶子结点个数为n0,度为2的分支结点个数为n2,则有n0=n2+1。

4、若规定根节点的层数为1,具有n个结点的满二叉树的深度,h=log2(n+1)(ps:2为底,n+1为对数)。

5、对于具有n个结点的完全二叉树,如果按照从上至下,从左至右的顺序对所有结点从0开始编号,则对于序号为i的结点有:

        (1)若i>0,i位置节点的双亲序号:(i-1)/2;i=0,i为根节点编号,无双亲节点

        (2)若2i+1<n,左孩子序号:2i+1,2i+1>=n否则无左孩子

        (3)若2i+1<n,右孩子序号:2i+2,2i+2>=n否则无右孩子

四、二叉树的基本操作

1、定义数据结构

typedef char DataType;

typedef struct BinaryTreeNode
{
	DataType data;
	struct BinaryTreeNode* left;
	struct BinaryTreeNode* right;
}BTNode;

2、二叉树的遍历

(1)前序遍历----先访问根节点,再访问左子树,最后访问右子树

 对上述二叉树进行前序遍历得到的序列为:123456

//前序遍历递归方法
void BinaryTreePrevOrder(BTNode* root)
{
	if (root == NULL)
		return;
	printf("%c ", root->data);
	BinaryTreePrevOrder(root->left);
	BinaryTreePrevOrder(root->right);
}

中序遍历和后序遍历与前序遍历大同小异,只需注意访问顺序即可

(2)中序遍历----先访问左子树,再访问根节点,最后访问右子树

对上述二叉树进行中序遍历得到的序列为:321546

// 中序遍历递归方法
void BinaryTreeInOrder(BTNode* root)
{
	if (root == NULL)
		return;
	BinaryTreeInOrder(root->left);
	printf("%c ", root->data);
	BinaryTreeInOrder(root->right);
}

(3)后序遍历----先访问左子树,再访问右子树,最后访问根节点

对上述二叉树进行后序遍历得到的序列为:325641

// 后序遍历递归方法
void BinaryTreePostOrder(BTNode* root)
{
	if (root == NULL)
		return;
	BinaryTreePostOrder(root->left);
	BinaryTreePostOrder(root->right);
	printf("%c ", root->data);
}

3、通过前序遍历构建二叉树

给出二叉树前序遍历序列(NULL用空格或者其他字符代替)

//创建新节点
BTNode* _BuyBTNode(DataType data)
{
	BTNode* newNode = (BTNode*)malloc(sizeof(BTNode));
	if (newNode == NULL)
	{
		printf("_BuyBTNode:malloc失败\n");
		exit(0);
	}
	newNode->data = data;
	newNode->left = NULL;
	newNode->right = NULL;
	return newNode;
}
//利用前序遍历构建二叉树
// 通过前序遍历的数组"ABD##E#H##CF##G##"构建二叉树
BTNode* _BinaryTreeCreate(DataType* a, int n, int* pi)
{
	if (*pi < n && a[*pi] != '#')
	{
		BTNode* newNode = _BuyBTNode(a[*pi]);
		(*pi)++;
		newNode->left = _BinaryTreeCreate(a, n, pi);
		(*pi)++;
		newNode->right = _BinaryTreeCreate(a, n, pi);
		return newNode;
	}
	return NULL;
}
BTNode* BinaryTreeCreate(DataType* a, int n)
{
	int index = 0;
	return _BinaryTreeCreate(a, n, &index);
}

4、层序遍历

层序遍历就是对二叉树逐层访问。

对上述二叉树进行层序遍历得到的序列为:124356

实现思想:通过利用队列先进先出的性质,先将根节点入队,当队列不为空时,弹出队首元素,将元素的左右孩子入队(左右孩子不为空时),直到队列为空,即遍历结束。

// 层序遍历
void BinaryTreeLevelOrder(BTNode* root)
{
	if (root == NULL)
		return;
	Queue q;
	//创建队列
	QueueCreate(&q);
	//将根节点入队
	QueuePush(&q, root);
	//循环,弹出队首元素,并将队首元素的左孩子与右孩子入队
	while (!QueueEmpty(&q))
	{
		BTNode* pcur = QueueGetFront(&q)->data;
		printf("%c ", pcur->data);
		if (pcur->left != NULL)
			QueuePush(&q, pcur->left);
		if (pcur->right != NULL)
			QueuePush(&q, pcur->right);
		QueuePop(&q);
	}
	QueueDestroy(&q);
}

5、其他操作

结合二叉树的性质实现

(1)二叉树节点个数

根节点(1个)+左子树节点个数+右子树节点个数。遇到NULL时返回0。

 

// 二叉树节点个数
int BinaryTreeSize(BTNode* root)
{
	if (root == NULL)
		return 0;
	return 1 + BinaryTreeSize(root->left) + BinaryTreeSize(root->right);
}

(2)二叉树高度

根节点高度(1)+Max(左子树高度,右子树高度)。遇到NULL时返回0。

 

//二叉树高度
int BinaryTreeHeight(BTNode* root)
{
	if (root == NULL)
		return 0;
	int LeftHeight = BinaryTreeHeight(root->left);
	int RightHeight = BinaryTreeHeight(root->right);
	return	LeftHeight > RightHeight ? LeftHeight + 1 : RightHeight + 1;
}

(3)二叉树叶子节点个数

叶子节点性质:左右子树都为NULL。

// 二叉树叶子节点个数
int BinaryTreeLeafSize(BTNode* root)
{
	if (root == NULL)
		return 0;
	if ((root->left == NULL) && (root->right == NULL))
		return 1;
	return BinaryTreeLeafSize(root->left) + BinaryTreeLeafSize(root->right);
}

(4)二叉树第k层节点个数

给出层数k,若k>0则向下遍历,直至k=1(到达目标层),若该节点为NULL,返回0,否则返回1。

// 二叉树第k层节点个数
int BinaryTreeLevelKSize(BTNode* root, int k)
{
	if ((k < 1) || (root == NULL))
		return 0;
	if (k == 1)
		return 1;
	return BinaryTreeLevelKSize(root->left, k - 1) + BinaryTreeLevelKSize(root->right, k - 1);
}

(5)二叉树查找节点值为x的节点

// 二叉树查找值为x的节点
BTNode* BinaryTreeFind(BTNode* root, DataType x)
{
	if (root == NULL)
		return NULL;
	if (root->data == x)
		return root;
	BTNode* res;
	(res = BinaryTreeFind(root->left, x)) || (res = BinaryTreeFind(root->right, x));
	return res;
}

(6)判断二叉树是否为完全二叉树

实现思想:找出第一个不满足满二叉树性质的节点,若该节点只有右子树没有左子树,返回0。

否则,继续向下遍历,检查后续节点是否有左右子树,若有返回0,无返回1。

// 判断二叉树是否是完全二叉树
int BinaryTreeComplete(BTNode* root)
{
	if (root == NULL)
		return 1;
	Queue q;
	QueueCreate(&q);
	QueuePush(&q, root);
	//标志是否找到第一个非满二叉树的节点
	int flag = 0;
	//1代表是完全二叉树,0代表不是
	int res = 1;
	while (!QueueEmpty(&q))
	{
		BTNode* pcur = QueueGetFront(&q)->data;
		QueuePop(&q);
		if (flag == 0)
		{
			if (pcur->left == NULL || pcur->right == NULL)
			{
				//当至少有一个孩子为空时,改节点为第一个非满二叉树节点
				flag = 1;
				if (pcur->left == NULL && pcur->right != NULL)
				{
					//当有右孩子无左孩子,res置0,退出循环
					res = 0;
					break;
				}
			}
			if (pcur->left != NULL)
				QueuePush(&q, pcur->left);
			if (pcur->right != NULL)
				QueuePush(&q, pcur->right);
		}
		else
		{
			if (pcur->left != NULL || pcur->right != NULL)
			{
				//后续节点如果有孩子,比不是完全二叉树
				res = 0;
				break;
			}
		}
	}
	QueueDestroy(&q);
	return res;
}

6、二叉树的销毁

形参为二级指针,若为一级指针,根节点销毁不了。

销毁时先销毁左右子树,若根节点先被销毁,左右子树无法被访问,出现错误。

// 二叉树销毁
void BinaryTreeDestory(BTNode** root)
{
	assert(root != NULL);
	if (*root == NULL)
		return;
	BinaryTreeDestory(&(*root)->left);
	BinaryTreeDestory(&(*root)->right);
	free(*root);
	*root = NULL;
}

* 正在执行任务: ninja [1/6] Performing build step for 'bootloader' [1/1] cd /home/coco/esp/xiaozhi/xiaozhi-esp32/build/bootloader/esp-idf/esptool_py && /home/coco/.espressif/python_env/idf5.4_py3.8_env/bin/python /home/coco/esp/esp-idf/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x0 /home/coco/esp/xiaozhi/xiaozhi-esp32/build/bootloader/bootloader.bin Bootloader binary size 0x4030 bytes. 0x3fd0 bytes (50%) free. [2/4] Linking CXX executable xiaozhi.elf FAILED: xiaozhi.elf : && /home/coco/.espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/xtensa-esp32s3-elf-g++ -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=/home/coco/esp/xiaozhi/xiaozhi-esp32/build/xiaozhi.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.ble_master.ld -T esp32s3.rom.ble_50.ld -T esp32s3.rom.ble_smp.ld -T esp32s3.rom.ble_dtm.ld -T esp32s3.rom.ble_test.ld -T esp32s3.rom.ble_scan.ld -T esp32s3.rom.newlib.ld -T memory.ld -T sections.ld CMakeFiles/xiaozhi.elf.dir/project_elf_src_esp32s3.c.obj -o xiaozhi.elf -L/home/coco/esp/esp-idf/components/soc/esp32s3/ld -L/home/coco/esp/esp-idf/components/esp_rom/esp32s3/ld -L/home/coco/esp/xiaozhi/xiaozhi-esp32/build/esp-idf/esp_system/ld -L/home/coco/esp/esp-idf/components/esp_phy/lib/esp32s3 -L/home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3 esp-idf/xtensa/libxtensa.a esp-idf/esp_driver_gpio/libesp_driver_gpio.a esp-idf/esp_pm/libesp_pm.a esp-idf/mbedtls/libmbedtls.a esp-idf/esp_app_format/libesp_app_format.a esp-idf/esp_bootloader_format/libesp_bootloader_format.a esp-idf/app_update/libapp_update.a esp-idf/esp_partition/libesp_partition.a esp-idf/efuse/libefuse.a esp-idf/bootloader_support/libbootloader_support.a esp-idf/esp_mm/libesp_mm.a esp-idf/spi_flash/libspi_flash.a esp-idf/esp_system/libesp_system.a esp-idf/esp_common/libesp_common.a esp-idf/esp_rom/libesp_rom.a esp-idf/hal/libhal.a esp-idf/log/liblog.a esp-idf/heap/libheap.a esp-idf/soc/libsoc.a esp-idf/esp_security/libesp_security.a esp-idf/esp_hw_support/libesp_hw_support.a esp-idf/freertos/libfreertos.a esp-idf/newlib/libnewlib.a esp-idf/pthread/libpthread.a esp-idf/cxx/libcxx.a esp-idf/esp_timer/libesp_timer.a esp-idf/esp_driver_gptimer/libesp_driver_gptimer.a esp-idf/esp_ringbuf/libesp_ringbuf.a esp-idf/esp_driver_uart/libesp_driver_uart.a esp-idf/app_trace/libapp_trace.a esp-idf/esp_event/libesp_event.a esp-idf/nvs_flash/libnvs_flash.a esp-idf/esp_driver_pcnt/libesp_driver_pcnt.a esp-idf/esp_driver_spi/libesp_driver_spi.a esp-idf/esp_driver_mcpwm/libesp_driver_mcpwm.a esp-idf/esp_driver_i2s/libesp_driver_i2s.a esp-idf/sdmmc/libsdmmc.a esp-idf/esp_driver_sdmmc/libesp_driver_sdmmc.a esp-idf/esp_driver_sdspi/libesp_driver_sdspi.a esp-idf/esp_driver_rmt/libesp_driver_rmt.a esp-idf/esp_driver_tsens/libesp_driver_tsens.a esp-idf/esp_driver_sdm/libesp_driver_sdm.a esp-idf/esp_driver_i2c/libesp_driver_i2c.a esp-idf/esp_driver_ledc/libesp_driver_ledc.a esp-idf/esp_driver_usb_serial_jtag/libesp_driver_usb_serial_jtag.a esp-idf/driver/libdriver.a esp-idf/esp_phy/libesp_phy.a esp-idf/esp_vfs_console/libesp_vfs_console.a esp-idf/vfs/libvfs.a esp-idf/lwip/liblwip.a esp-idf/esp_netif/libesp_netif.a esp-idf/wpa_supplicant/libwpa_supplicant.a esp-idf/esp_coex/libesp_coex.a esp-idf/esp_wifi/libesp_wifi.a esp-idf/esp_gdbstub/libesp_gdbstub.a esp-idf/unity/libunity.a esp-idf/cmock/libcmock.a esp-idf/console/libconsole.a esp-idf/http_parser/libhttp_parser.a esp-idf/esp-tls/libesp-tls.a esp-idf/esp_adc/libesp_adc.a esp-idf/esp_driver_cam/libesp_driver_cam.a esp-idf/esp_psram/libesp_psram.a esp-idf/esp_eth/libesp_eth.a esp-idf/esp_hid/libesp_hid.a esp-idf/tcp_transport/libtcp_transport.a esp-idf/esp_http_client/libesp_http_client.a esp-idf/esp_http_server/libesp_http_server.a esp-idf/esp_https_ota/libesp_https_ota.a esp-idf/esp_https_server/libesp_https_server.a esp-idf/esp_lcd/libesp_lcd.a esp-idf/protobuf-c/libprotobuf-c.a esp-idf/protocomm/libprotocomm.a esp-idf/esp_local_ctrl/libesp_local_ctrl.a esp-idf/espcoredump/libespcoredump.a esp-idf/wear_levelling/libwear_levelling.a esp-idf/fatfs/libfatfs.a esp-idf/json/libjson.a esp-idf/mqtt/libmqtt.a esp-idf/nvs_sec_provider/libnvs_sec_provider.a esp-idf/perfmon/libperfmon.a esp-idf/rt/librt.a esp-idf/spiffs/libspiffs.a esp-idf/touch_element/libtouch_element.a esp-idf/usb/libusb.a esp-idf/wifi_provisioning/libwifi_provisioning.a esp-idf/78__esp-ml307/lib78__esp-ml307.a esp-idf/78__esp-opus/lib78__esp-opus.a esp-idf/78__esp-opus-encoder/lib78__esp-opus-encoder.a esp-idf/78__esp-wifi-connect/lib78__esp-wifi-connect.a esp-idf/78__esp_lcd_nv3023/lib78__esp_lcd_nv3023.a esp-idf/lvgl__lvgl/liblvgl__lvgl.a esp-idf/78__xiaozhi-fonts/lib78__xiaozhi-fonts.a esp-idf/espressif__adc_battery_estimation/libespressif__adc_battery_estimation.a esp-idf/espressif__esp_codec_dev/libespressif__esp_codec_dev.a esp-idf/espressif__adc_mic/libespressif__adc_mic.a esp-idf/espressif__button/libespressif__button.a esp-idf/espressif__dl_fft/libespressif__dl_fft.a esp-idf/espressif__esp-dsp/libespressif__esp-dsp.a esp-idf/espressif__esp-sr/libespressif__esp-sr.a esp-idf/espressif__esp_jpeg/libespressif__esp_jpeg.a esp-idf/espressif__esp32-camera/libespressif__esp32-camera.a esp-idf/espressif__esp_io_expander/libespressif__esp_io_expander.a esp-idf/espressif__esp_io_expander_tca9554/libespressif__esp_io_expander_tca9554.a esp-idf/espressif__esp_io_expander_tca95xx_16bit/libespressif__esp_io_expander_tca95xx_16bit.a esp-idf/espressif__esp_lcd_touch/libespressif__esp_lcd_touch.a esp-idf/espressif__esp_lcd_axs15231b/libespressif__esp_lcd_axs15231b.a esp-idf/espressif__esp_lcd_gc9a01/libespressif__esp_lcd_gc9a01.a esp-idf/espressif__esp_lcd_ili9341/libespressif__esp_lcd_ili9341.a esp-idf/espressif__esp_lcd_panel_io_additions/libespressif__esp_lcd_panel_io_additions.a esp-idf/espressif__esp_lcd_spd2010/libespressif__esp_lcd_spd2010.a esp-idf/espressif__esp_lcd_st77916/libespressif__esp_lcd_st77916.a esp-idf/espressif__esp_lcd_st7796/libespressif__esp_lcd_st7796.a esp-idf/espressif__esp_lcd_touch_cst816s/libespressif__esp_lcd_touch_cst816s.a esp-idf/espressif__esp_lcd_touch_ft5x06/libespressif__esp_lcd_touch_ft5x06.a esp-idf/espressif__esp_lcd_touch_gt911/libespressif__esp_lcd_touch_gt911.a esp-idf/espressif__esp_mmap_assets/libespressif__esp_mmap_assets.a esp-idf/espressif__knob/libespressif__knob.a esp-idf/espressif__led_strip/libespressif__led_strip.a esp-idf/espressif2022__esp_emote_gfx/libespressif2022__esp_emote_gfx.a esp-idf/espressif2022__image_player/libespressif2022__image_player.a esp-idf/tny-robotics__sh1106-esp-idf/libtny-robotics__sh1106-esp-idf.a esp-idf/txp666__otto-emoji-gif-component/libtxp666__otto-emoji-gif-component.a esp-idf/waveshare__esp_lcd_sh8601/libwaveshare__esp_lcd_sh8601.a esp-idf/waveshare__esp_lcd_touch_cst9217/libwaveshare__esp_lcd_touch_cst9217.a esp-idf/wvirgil123__sscma_client/libwvirgil123__sscma_client.a -Wl,--whole-archive esp-idf/main/libmain.a -Wl,--no-whole-archive esp-idf/app_trace/libapp_trace.a esp-idf/app_trace/libapp_trace.a esp-idf/cmock/libcmock.a esp-idf/unity/libunity.a esp-idf/esp_driver_cam/libesp_driver_cam.a esp-idf/esp_eth/libesp_eth.a esp-idf/esp_hid/libesp_hid.a esp-idf/esp_local_ctrl/libesp_local_ctrl.a esp-idf/esp_https_server/libesp_https_server.a esp-idf/espcoredump/libespcoredump.a -u esp_system_include_coredump_init esp-idf/fatfs/libfatfs.a esp-idf/wear_levelling/libwear_levelling.a esp-idf/nvs_sec_provider/libnvs_sec_provider.a -u nvs_sec_provider_include_impl esp-idf/perfmon/libperfmon.a esp-idf/rt/librt.a esp-idf/touch_element/libtouch_element.a esp-idf/usb/libusb.a esp-idf/wifi_provisioning/libwifi_provisioning.a esp-idf/protocomm/libprotocomm.a esp-idf/console/libconsole.a esp-idf/protobuf-c/libprotobuf-c.a esp-idf/78__esp-ml307/lib78__esp-ml307.a esp-idf/mqtt/libmqtt.a esp-idf/78__esp-opus-encoder/lib78__esp-opus-encoder.a esp-idf/78__esp-opus/lib78__esp-opus.a esp-idf/78__esp-wifi-connect/lib78__esp-wifi-connect.a esp-idf/78__esp_lcd_nv3023/lib78__esp_lcd_nv3023.a esp-idf/78__xiaozhi-fonts/lib78__xiaozhi-fonts.a esp-idf/espressif__adc_battery_estimation/libespressif__adc_battery_estimation.a esp-idf/espressif__adc_mic/libespressif__adc_mic.a esp-idf/espressif__esp_codec_dev/libespressif__esp_codec_dev.a esp-idf/espressif__esp-sr/libespressif__esp-sr.a ../managed_components/espressif__esp-sr/lib/esp32s3/libdl_lib.a ../managed_components/espressif__esp-sr/lib/esp32s3/libc_speech_features.a ../managed_components/espressif__esp-sr/lib/esp32s3/libesp_audio_front_end.a ../managed_components/espressif__esp-sr/lib/esp32s3/libesp_audio_processor.a ../managed_components/espressif__esp-sr/esp-tts/esp_tts_chinese/esp32s3/libesp_tts_chinese.a ../managed_components/espressif__esp-sr/esp-tts/esp_tts_chinese/esp32s3/libvoice_set_xiaole.a ../managed_components/espressif__esp-sr/lib/esp32s3/libfst.a ../managed_components/espressif__esp-sr/lib/esp32s3/libflite_g2p.a ../managed_components/espressif__esp-sr/lib/esp32s3/libhufzip.a ../managed_components/espressif__esp-sr/lib/esp32s3/libmultinet.a ../managed_components/espressif__esp-sr/lib/esp32s3/libnsnet.a ../managed_components/espressif__esp-sr/lib/esp32s3/libvadnet.a ../managed_components/espressif__esp-sr/lib/esp32s3/libwakenet.a esp-idf/espressif__esp-sr/libespressif__esp-sr.a ../managed_components/espressif__esp-sr/lib/esp32s3/libdl_lib.a ../managed_components/espressif__esp-sr/lib/esp32s3/libc_speech_features.a ../managed_components/espressif__esp-sr/lib/esp32s3/libesp_audio_front_end.a ../managed_components/espressif__esp-sr/lib/esp32s3/libesp_audio_processor.a ../managed_components/espressif__esp-sr/esp-tts/esp_tts_chinese/esp32s3/libesp_tts_chinese.a ../managed_components/espressif__esp-sr/esp-tts/esp_tts_chinese/esp32s3/libvoice_set_xiaole.a ../managed_components/espressif__esp-sr/lib/esp32s3/libfst.a ../managed_components/espressif__esp-sr/lib/esp32s3/libflite_g2p.a ../managed_components/espressif__esp-sr/lib/esp32s3/libhufzip.a ../managed_components/espressif__esp-sr/lib/esp32s3/libmultinet.a ../managed_components/espressif__esp-sr/lib/esp32s3/libnsnet.a ../managed_components/espressif__esp-sr/lib/esp32s3/libvadnet.a ../managed_components/espressif__esp-sr/lib/esp32s3/libwakenet.a esp-idf/spiffs/libspiffs.a esp-idf/espressif__dl_fft/libespressif__dl_fft.a esp-idf/espressif__esp-dsp/libespressif__esp-dsp.a -L /home/coco/esp/xiaozhi/xiaozhi-esp32/managed_components/espressif__esp-sr/lib/esp32s3 -L /home/coco/esp/xiaozhi/xiaozhi-esp32/managed_components/espressif__esp-sr/esp-tts/esp_tts_chinese/esp32s3 esp-idf/espressif__esp-dsp/libespressif__esp-dsp.a esp-idf/espressif__dl_fft/libespressif__dl_fft.a esp-idf/espressif__esp32-camera/libespressif__esp32-camera.a esp-idf/espressif__esp_jpeg/libespressif__esp_jpeg.a esp-idf/espressif__esp_io_expander_tca9554/libespressif__esp_io_expander_tca9554.a esp-idf/espressif__esp_io_expander_tca95xx_16bit/libespressif__esp_io_expander_tca95xx_16bit.a esp-idf/espressif__esp_lcd_axs15231b/libespressif__esp_lcd_axs15231b.a esp-idf/espressif__esp_lcd_gc9a01/libespressif__esp_lcd_gc9a01.a esp-idf/espressif__esp_lcd_ili9341/libespressif__esp_lcd_ili9341.a esp-idf/espressif__esp_lcd_panel_io_additions/libespressif__esp_lcd_panel_io_additions.a esp-idf/espressif__esp_lcd_spd2010/libespressif__esp_lcd_spd2010.a esp-idf/espressif__esp_lcd_st77916/libespressif__esp_lcd_st77916.a esp-idf/espressif__esp_lcd_st7796/libespressif__esp_lcd_st7796.a esp-idf/espressif__esp_lcd_touch_cst816s/libespressif__esp_lcd_touch_cst816s.a esp-idf/espressif__esp_lcd_touch_ft5x06/libespressif__esp_lcd_touch_ft5x06.a esp-idf/espressif__esp_lcd_touch_gt911/libespressif__esp_lcd_touch_gt911.a esp-idf/espressif__esp_lvgl_port/liblvgl_port_lib.a esp-idf/espressif__button/libespressif__button.a esp-idf/espressif__esp_mmap_assets/libespressif__esp_mmap_assets.a esp-idf/espressif__knob/libespressif__knob.a esp-idf/espressif__led_strip/libespressif__led_strip.a esp-idf/espressif2022__esp_emote_gfx/libespressif2022__esp_emote_gfx.a -Wl,--start-group -Wl,--end-group ../managed_components/espressif__esp_new_jpeg/lib/esp32s3/libesp_new_jpeg.a esp-idf/espressif__freetype/output/libfreetype.a esp-idf/espressif2022__image_player/libespressif2022__image_player.a esp-idf/tny-robotics__sh1106-esp-idf/libtny-robotics__sh1106-esp-idf.a esp-idf/txp666__otto-emoji-gif-component/libtxp666__otto-emoji-gif-component.a esp-idf/lvgl__lvgl/liblvgl__lvgl.a esp-idf/waveshare__esp_lcd_sh8601/libwaveshare__esp_lcd_sh8601.a esp-idf/waveshare__esp_lcd_touch_cst9217/libwaveshare__esp_lcd_touch_cst9217.a esp-idf/espressif__esp_lcd_touch/libespressif__esp_lcd_touch.a esp-idf/esp_lcd/libesp_lcd.a esp-idf/wvirgil123__sscma_client/libwvirgil123__sscma_client.a esp-idf/json/libjson.a esp-idf/espressif__esp_io_expander/libespressif__esp_io_expander.a esp-idf/xtensa/libxtensa.a esp-idf/esp_driver_gpio/libesp_driver_gpio.a esp-idf/esp_pm/libesp_pm.a esp-idf/mbedtls/libmbedtls.a esp-idf/esp_app_format/libesp_app_format.a esp-idf/esp_bootloader_format/libesp_bootloader_format.a esp-idf/app_update/libapp_update.a esp-idf/esp_partition/libesp_partition.a esp-idf/efuse/libefuse.a esp-idf/bootloader_support/libbootloader_support.a esp-idf/esp_mm/libesp_mm.a esp-idf/spi_flash/libspi_flash.a esp-idf/esp_system/libesp_system.a esp-idf/esp_common/libesp_common.a esp-idf/esp_rom/libesp_rom.a esp-idf/hal/libhal.a esp-idf/log/liblog.a esp-idf/heap/libheap.a esp-idf/soc/libsoc.a esp-idf/esp_security/libesp_security.a esp-idf/esp_hw_support/libesp_hw_support.a esp-idf/freertos/libfreertos.a esp-idf/newlib/libnewlib.a esp-idf/pthread/libpthread.a esp-idf/cxx/libcxx.a esp-idf/esp_timer/libesp_timer.a esp-idf/esp_driver_gptimer/libesp_driver_gptimer.a esp-idf/esp_ringbuf/libesp_ringbuf.a esp-idf/esp_driver_uart/libesp_driver_uart.a esp-idf/esp_event/libesp_event.a esp-idf/nvs_flash/libnvs_flash.a esp-idf/esp_driver_pcnt/libesp_driver_pcnt.a esp-idf/esp_driver_spi/libesp_driver_spi.a esp-idf/esp_driver_mcpwm/libesp_driver_mcpwm.a esp-idf/esp_driver_i2s/libesp_driver_i2s.a esp-idf/sdmmc/libsdmmc.a esp-idf/esp_driver_sdmmc/libesp_driver_sdmmc.a esp-idf/esp_driver_sdspi/libesp_driver_sdspi.a esp-idf/esp_driver_rmt/libesp_driver_rmt.a esp-idf/esp_driver_tsens/libesp_driver_tsens.a esp-idf/esp_driver_sdm/libesp_driver_sdm.a esp-idf/esp_driver_i2c/libesp_driver_i2c.a esp-idf/esp_driver_ledc/libesp_driver_ledc.a esp-idf/esp_driver_usb_serial_jtag/libesp_driver_usb_serial_jtag.a esp-idf/driver/libdriver.a esp-idf/esp_phy/libesp_phy.a esp-idf/esp_vfs_console/libesp_vfs_console.a esp-idf/vfs/libvfs.a esp-idf/lwip/liblwip.a esp-idf/esp_netif/libesp_netif.a esp-idf/wpa_supplicant/libwpa_supplicant.a esp-idf/esp_coex/libesp_coex.a esp-idf/esp_wifi/libesp_wifi.a esp-idf/esp_gdbstub/libesp_gdbstub.a esp-idf/http_parser/libhttp_parser.a esp-idf/esp-tls/libesp-tls.a esp-idf/esp_adc/libesp_adc.a esp-idf/esp_psram/libesp_psram.a esp-idf/tcp_transport/libtcp_transport.a esp-idf/esp_http_client/libesp_http_client.a esp-idf/esp_http_server/libesp_http_server.a esp-idf/esp_https_ota/libesp_https_ota.a esp-idf/mbedtls/mbedtls/library/libmbedtls.a esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a esp-idf/mbedtls/mbedtls/library/libmbedx509.a esp-idf/mbedtls/mbedtls/3rdparty/everest/libeverest.a esp-idf/mbedtls/mbedtls/3rdparty/p256-m/libp256m.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libcore.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libespnow.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libmesh.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libnet80211.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libpp.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libsmartconfig.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libwapi.a esp-idf/xtensa/libxtensa.a esp-idf/esp_driver_gpio/libesp_driver_gpio.a esp-idf/esp_pm/libesp_pm.a esp-idf/mbedtls/libmbedtls.a esp-idf/esp_app_format/libesp_app_format.a esp-idf/esp_bootloader_format/libesp_bootloader_format.a esp-idf/app_update/libapp_update.a esp-idf/esp_partition/libesp_partition.a esp-idf/efuse/libefuse.a esp-idf/bootloader_support/libbootloader_support.a esp-idf/esp_mm/libesp_mm.a esp-idf/spi_flash/libspi_flash.a esp-idf/esp_system/libesp_system.a esp-idf/esp_common/libesp_common.a esp-idf/esp_rom/libesp_rom.a esp-idf/hal/libhal.a esp-idf/log/liblog.a esp-idf/heap/libheap.a esp-idf/soc/libsoc.a esp-idf/esp_security/libesp_security.a esp-idf/esp_hw_support/libesp_hw_support.a esp-idf/freertos/libfreertos.a esp-idf/newlib/libnewlib.a esp-idf/pthread/libpthread.a esp-idf/cxx/libcxx.a esp-idf/esp_timer/libesp_timer.a esp-idf/esp_driver_gptimer/libesp_driver_gptimer.a esp-idf/esp_ringbuf/libesp_ringbuf.a esp-idf/esp_driver_uart/libesp_driver_uart.a esp-idf/esp_event/libesp_event.a esp-idf/nvs_flash/libnvs_flash.a esp-idf/esp_driver_pcnt/libesp_driver_pcnt.a esp-idf/esp_driver_spi/libesp_driver_spi.a esp-idf/esp_driver_mcpwm/libesp_driver_mcpwm.a esp-idf/esp_driver_i2s/libesp_driver_i2s.a esp-idf/sdmmc/libsdmmc.a esp-idf/esp_driver_sdmmc/libesp_driver_sdmmc.a esp-idf/esp_driver_sdspi/libesp_driver_sdspi.a esp-idf/esp_driver_rmt/libesp_driver_rmt.a esp-idf/esp_driver_tsens/libesp_driver_tsens.a esp-idf/esp_driver_sdm/libesp_driver_sdm.a esp-idf/esp_driver_i2c/libesp_driver_i2c.a esp-idf/esp_driver_ledc/libesp_driver_ledc.a esp-idf/esp_driver_usb_serial_jtag/libesp_driver_usb_serial_jtag.a esp-idf/driver/libdriver.a esp-idf/esp_phy/libesp_phy.a esp-idf/esp_vfs_console/libesp_vfs_console.a esp-idf/vfs/libvfs.a esp-idf/lwip/liblwip.a esp-idf/esp_netif/libesp_netif.a esp-idf/wpa_supplicant/libwpa_supplicant.a esp-idf/esp_coex/libesp_coex.a esp-idf/esp_wifi/libesp_wifi.a esp-idf/esp_gdbstub/libesp_gdbstub.a esp-idf/http_parser/libhttp_parser.a esp-idf/esp-tls/libesp-tls.a esp-idf/esp_adc/libesp_adc.a esp-idf/esp_psram/libesp_psram.a esp-idf/tcp_transport/libtcp_transport.a esp-idf/esp_http_client/libesp_http_client.a esp-idf/esp_http_server/libesp_http_server.a esp-idf/esp_https_ota/libesp_https_ota.a esp-idf/mbedtls/mbedtls/library/libmbedtls.a esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a esp-idf/mbedtls/mbedtls/library/libmbedx509.a esp-idf/mbedtls/mbedtls/3rdparty/everest/libeverest.a esp-idf/mbedtls/mbedtls/3rdparty/p256-m/libp256m.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libcore.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libespnow.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libmesh.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libnet80211.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libpp.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libsmartconfig.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libwapi.a esp-idf/xtensa/libxtensa.a esp-idf/esp_driver_gpio/libesp_driver_gpio.a esp-idf/esp_pm/libesp_pm.a esp-idf/mbedtls/libmbedtls.a esp-idf/esp_app_format/libesp_app_format.a esp-idf/esp_bootloader_format/libesp_bootloader_format.a esp-idf/app_update/libapp_update.a esp-idf/esp_partition/libesp_partition.a esp-idf/efuse/libefuse.a esp-idf/bootloader_support/libbootloader_support.a esp-idf/esp_mm/libesp_mm.a esp-idf/spi_flash/libspi_flash.a esp-idf/esp_system/libesp_system.a esp-idf/esp_common/libesp_common.a esp-idf/esp_rom/libesp_rom.a esp-idf/hal/libhal.a esp-idf/log/liblog.a esp-idf/heap/libheap.a esp-idf/soc/libsoc.a esp-idf/esp_security/libesp_security.a esp-idf/esp_hw_support/libesp_hw_support.a esp-idf/freertos/libfreertos.a esp-idf/newlib/libnewlib.a esp-idf/pthread/libpthread.a esp-idf/cxx/libcxx.a esp-idf/esp_timer/libesp_timer.a esp-idf/esp_driver_gptimer/libesp_driver_gptimer.a esp-idf/esp_ringbuf/libesp_ringbuf.a esp-idf/esp_driver_uart/libesp_driver_uart.a esp-idf/esp_event/libesp_event.a esp-idf/nvs_flash/libnvs_flash.a esp-idf/esp_driver_pcnt/libesp_driver_pcnt.a esp-idf/esp_driver_spi/libesp_driver_spi.a esp-idf/esp_driver_mcpwm/libesp_driver_mcpwm.a esp-idf/esp_driver_i2s/libesp_driver_i2s.a esp-idf/sdmmc/libsdmmc.a esp-idf/esp_driver_sdmmc/libesp_driver_sdmmc.a esp-idf/esp_driver_sdspi/libesp_driver_sdspi.a esp-idf/esp_driver_rmt/libesp_driver_rmt.a esp-idf/esp_driver_tsens/libesp_driver_tsens.a esp-idf/esp_driver_sdm/libesp_driver_sdm.a esp-idf/esp_driver_i2c/libesp_driver_i2c.a esp-idf/esp_driver_ledc/libesp_driver_ledc.a esp-idf/esp_driver_usb_serial_jtag/libesp_driver_usb_serial_jtag.a esp-idf/driver/libdriver.a esp-idf/esp_phy/libesp_phy.a esp-idf/esp_vfs_console/libesp_vfs_console.a esp-idf/vfs/libvfs.a esp-idf/lwip/liblwip.a esp-idf/esp_netif/libesp_netif.a esp-idf/wpa_supplicant/libwpa_supplicant.a esp-idf/esp_coex/libesp_coex.a esp-idf/esp_wifi/libesp_wifi.a esp-idf/esp_gdbstub/libesp_gdbstub.a esp-idf/http_parser/libhttp_parser.a esp-idf/esp-tls/libesp-tls.a esp-idf/esp_adc/libesp_adc.a esp-idf/esp_psram/libesp_psram.a esp-idf/tcp_transport/libtcp_transport.a esp-idf/esp_http_client/libesp_http_client.a esp-idf/esp_http_server/libesp_http_server.a esp-idf/esp_https_ota/libesp_https_ota.a esp-idf/mbedtls/mbedtls/library/libmbedtls.a esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a esp-idf/mbedtls/mbedtls/library/libmbedx509.a esp-idf/mbedtls/mbedtls/3rdparty/everest/libeverest.a esp-idf/mbedtls/mbedtls/3rdparty/p256-m/libp256m.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libcore.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libespnow.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libmesh.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libnet80211.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libpp.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libsmartconfig.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libwapi.a esp-idf/xtensa/libxtensa.a esp-idf/esp_driver_gpio/libesp_driver_gpio.a esp-idf/esp_pm/libesp_pm.a esp-idf/mbedtls/libmbedtls.a esp-idf/esp_app_format/libesp_app_format.a esp-idf/esp_bootloader_format/libesp_bootloader_format.a esp-idf/app_update/libapp_update.a esp-idf/esp_partition/libesp_partition.a esp-idf/efuse/libefuse.a esp-idf/bootloader_support/libbootloader_support.a esp-idf/esp_mm/libesp_mm.a esp-idf/spi_flash/libspi_flash.a esp-idf/esp_system/libesp_system.a esp-idf/esp_common/libesp_common.a esp-idf/esp_rom/libesp_rom.a esp-idf/hal/libhal.a esp-idf/log/liblog.a esp-idf/heap/libheap.a esp-idf/soc/libsoc.a esp-idf/esp_security/libesp_security.a esp-idf/esp_hw_support/libesp_hw_support.a esp-idf/freertos/libfreertos.a esp-idf/newlib/libnewlib.a esp-idf/pthread/libpthread.a esp-idf/cxx/libcxx.a esp-idf/esp_timer/libesp_timer.a esp-idf/esp_driver_gptimer/libesp_driver_gptimer.a esp-idf/esp_ringbuf/libesp_ringbuf.a esp-idf/esp_driver_uart/libesp_driver_uart.a esp-idf/esp_event/libesp_event.a esp-idf/nvs_flash/libnvs_flash.a esp-idf/esp_driver_pcnt/libesp_driver_pcnt.a esp-idf/esp_driver_spi/libesp_driver_spi.a esp-idf/esp_driver_mcpwm/libesp_driver_mcpwm.a esp-idf/esp_driver_i2s/libesp_driver_i2s.a esp-idf/sdmmc/libsdmmc.a esp-idf/esp_driver_sdmmc/libesp_driver_sdmmc.a esp-idf/esp_driver_sdspi/libesp_driver_sdspi.a esp-idf/esp_driver_rmt/libesp_driver_rmt.a esp-idf/esp_driver_tsens/libesp_driver_tsens.a esp-idf/esp_driver_sdm/libesp_driver_sdm.a esp-idf/esp_driver_i2c/libesp_driver_i2c.a esp-idf/esp_driver_ledc/libesp_driver_ledc.a esp-idf/esp_driver_usb_serial_jtag/libesp_driver_usb_serial_jtag.a esp-idf/driver/libdriver.a esp-idf/esp_phy/libesp_phy.a esp-idf/esp_vfs_console/libesp_vfs_console.a esp-idf/vfs/libvfs.a esp-idf/lwip/liblwip.a esp-idf/esp_netif/libesp_netif.a esp-idf/wpa_supplicant/libwpa_supplicant.a esp-idf/esp_coex/libesp_coex.a esp-idf/esp_wifi/libesp_wifi.a esp-idf/esp_gdbstub/libesp_gdbstub.a esp-idf/http_parser/libhttp_parser.a esp-idf/esp-tls/libesp-tls.a esp-idf/esp_adc/libesp_adc.a esp-idf/esp_psram/libesp_psram.a esp-idf/tcp_transport/libtcp_transport.a esp-idf/esp_http_client/libesp_http_client.a esp-idf/esp_http_server/libesp_http_server.a esp-idf/esp_https_ota/libesp_https_ota.a esp-idf/mbedtls/mbedtls/library/libmbedtls.a esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a esp-idf/mbedtls/mbedtls/library/libmbedx509.a esp-idf/mbedtls/mbedtls/3rdparty/everest/libeverest.a esp-idf/mbedtls/mbedtls/3rdparty/p256-m/libp256m.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libcore.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libespnow.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libmesh.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libnet80211.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libpp.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libsmartconfig.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libwapi.a esp-idf/xtensa/libxtensa.a esp-idf/esp_driver_gpio/libesp_driver_gpio.a esp-idf/esp_pm/libesp_pm.a esp-idf/mbedtls/libmbedtls.a esp-idf/esp_app_format/libesp_app_format.a esp-idf/esp_bootloader_format/libesp_bootloader_format.a esp-idf/app_update/libapp_update.a esp-idf/esp_partition/libesp_partition.a esp-idf/efuse/libefuse.a esp-idf/bootloader_support/libbootloader_support.a esp-idf/esp_mm/libesp_mm.a esp-idf/spi_flash/libspi_flash.a esp-idf/esp_system/libesp_system.a esp-idf/esp_common/libesp_common.a esp-idf/esp_rom/libesp_rom.a esp-idf/hal/libhal.a esp-idf/log/liblog.a esp-idf/heap/libheap.a esp-idf/soc/libsoc.a esp-idf/esp_security/libesp_security.a esp-idf/esp_hw_support/libesp_hw_support.a esp-idf/freertos/libfreertos.a esp-idf/newlib/libnewlib.a esp-idf/pthread/libpthread.a esp-idf/cxx/libcxx.a esp-idf/esp_timer/libesp_timer.a esp-idf/esp_driver_gptimer/libesp_driver_gptimer.a esp-idf/esp_ringbuf/libesp_ringbuf.a esp-idf/esp_driver_uart/libesp_driver_uart.a esp-idf/esp_event/libesp_event.a esp-idf/nvs_flash/libnvs_flash.a esp-idf/esp_driver_pcnt/libesp_driver_pcnt.a esp-idf/esp_driver_spi/libesp_driver_spi.a esp-idf/esp_driver_mcpwm/libesp_driver_mcpwm.a esp-idf/esp_driver_i2s/libesp_driver_i2s.a esp-idf/sdmmc/libsdmmc.a esp-idf/esp_driver_sdmmc/libesp_driver_sdmmc.a esp-idf/esp_driver_sdspi/libesp_driver_sdspi.a esp-idf/esp_driver_rmt/libesp_driver_rmt.a esp-idf/esp_driver_tsens/libesp_driver_tsens.a esp-idf/esp_driver_sdm/libesp_driver_sdm.a esp-idf/esp_driver_i2c/libesp_driver_i2c.a esp-idf/esp_driver_ledc/libesp_driver_ledc.a esp-idf/esp_driver_usb_serial_jtag/libesp_driver_usb_serial_jtag.a esp-idf/driver/libdriver.a esp-idf/esp_phy/libesp_phy.a esp-idf/esp_vfs_console/libesp_vfs_console.a esp-idf/vfs/libvfs.a esp-idf/lwip/liblwip.a esp-idf/esp_netif/libesp_netif.a esp-idf/wpa_supplicant/libwpa_supplicant.a esp-idf/esp_coex/libesp_coex.a esp-idf/esp_wifi/libesp_wifi.a esp-idf/esp_gdbstub/libesp_gdbstub.a esp-idf/http_parser/libhttp_parser.a esp-idf/esp-tls/libesp-tls.a esp-idf/esp_adc/libesp_adc.a esp-idf/esp_psram/libesp_psram.a esp-idf/tcp_transport/libtcp_transport.a esp-idf/esp_http_client/libesp_http_client.a esp-idf/esp_http_server/libesp_http_server.a esp-idf/esp_https_ota/libesp_https_ota.a esp-idf/mbedtls/mbedtls/library/libmbedtls.a esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a esp-idf/mbedtls/mbedtls/library/libmbedx509.a esp-idf/mbedtls/mbedtls/3rdparty/everest/libeverest.a esp-idf/mbedtls/mbedtls/3rdparty/p256-m/libp256m.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libcore.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libespnow.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libmesh.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libnet80211.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libpp.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libsmartconfig.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libwapi.a esp-idf/xtensa/libxtensa.a esp-idf/esp_driver_gpio/libesp_driver_gpio.a esp-idf/esp_pm/libesp_pm.a esp-idf/mbedtls/libmbedtls.a esp-idf/esp_app_format/libesp_app_format.a esp-idf/esp_bootloader_format/libesp_bootloader_format.a esp-idf/app_update/libapp_update.a esp-idf/esp_partition/libesp_partition.a esp-idf/efuse/libefuse.a esp-idf/bootloader_support/libbootloader_support.a esp-idf/esp_mm/libesp_mm.a esp-idf/spi_flash/libspi_flash.a esp-idf/esp_system/libesp_system.a esp-idf/esp_common/libesp_common.a esp-idf/esp_rom/libesp_rom.a esp-idf/hal/libhal.a esp-idf/log/liblog.a esp-idf/heap/libheap.a esp-idf/soc/libsoc.a esp-idf/esp_security/libesp_security.a esp-idf/esp_hw_support/libesp_hw_support.a esp-idf/freertos/libfreertos.a esp-idf/newlib/libnewlib.a esp-idf/pthread/libpthread.a esp-idf/cxx/libcxx.a esp-idf/esp_timer/libesp_timer.a esp-idf/esp_driver_gptimer/libesp_driver_gptimer.a esp-idf/esp_ringbuf/libesp_ringbuf.a esp-idf/esp_driver_uart/libesp_driver_uart.a esp-idf/esp_event/libesp_event.a esp-idf/nvs_flash/libnvs_flash.a esp-idf/esp_driver_pcnt/libesp_driver_pcnt.a esp-idf/esp_driver_spi/libesp_driver_spi.a esp-idf/esp_driver_mcpwm/libesp_driver_mcpwm.a esp-idf/esp_driver_i2s/libesp_driver_i2s.a esp-idf/sdmmc/libsdmmc.a esp-idf/esp_driver_sdmmc/libesp_driver_sdmmc.a esp-idf/esp_driver_sdspi/libesp_driver_sdspi.a esp-idf/esp_driver_rmt/libesp_driver_rmt.a esp-idf/esp_driver_tsens/libesp_driver_tsens.a esp-idf/esp_driver_sdm/libesp_driver_sdm.a esp-idf/esp_driver_i2c/libesp_driver_i2c.a esp-idf/esp_driver_ledc/libesp_driver_ledc.a esp-idf/esp_driver_usb_serial_jtag/libesp_driver_usb_serial_jtag.a esp-idf/driver/libdriver.a esp-idf/esp_phy/libesp_phy.a esp-idf/esp_vfs_console/libesp_vfs_console.a esp-idf/vfs/libvfs.a esp-idf/lwip/liblwip.a esp-idf/esp_netif/libesp_netif.a esp-idf/wpa_supplicant/libwpa_supplicant.a esp-idf/esp_coex/libesp_coex.a esp-idf/esp_wifi/libesp_wifi.a esp-idf/esp_gdbstub/libesp_gdbstub.a esp-idf/http_parser/libhttp_parser.a esp-idf/esp-tls/libesp-tls.a esp-idf/esp_adc/libesp_adc.a esp-idf/esp_psram/libesp_psram.a esp-idf/tcp_transport/libtcp_transport.a esp-idf/esp_http_client/libesp_http_client.a esp-idf/esp_http_server/libesp_http_server.a esp-idf/esp_https_ota/libesp_https_ota.a esp-idf/mbedtls/mbedtls/library/libmbedtls.a esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a esp-idf/mbedtls/mbedtls/library/libmbedx509.a esp-idf/mbedtls/mbedtls/3rdparty/everest/libeverest.a esp-idf/mbedtls/mbedtls/3rdparty/p256-m/libp256m.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libcore.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libespnow.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libmesh.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libnet80211.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libpp.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libsmartconfig.a /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libwapi.a /home/coco/esp/esp-idf/components/xtensa/esp32s3/libxt_hal.a -Wl,--wrap=mbedtls_ssl_write_client_hello -Wl,--wrap=mbedtls_ssl_handshake_client_step -Wl,--wrap=mbedtls_ssl_handshake_server_step -Wl,--wrap=mbedtls_ssl_read -Wl,--wrap=mbedtls_ssl_write -Wl,--wrap=mbedtls_ssl_session_reset -Wl,--wrap=mbedtls_ssl_free -Wl,--wrap=mbedtls_ssl_setup -Wl,--wrap=mbedtls_ssl_send_alert_message -Wl,--wrap=mbedtls_ssl_close_notify -u esp_app_desc -u esp_efuse_startup_include_func -u ld_include_highint_hdl -u start_app -u start_app_other_cores -u __ubsan_include -u esp_system_include_startup_funcs -Wl,--wrap=longjmp -u __assert_func -u esp_security_init_include_impl -u esp_sleep_gpio_include -Wl,--undefined=FreeRTOS_openocd_params -u app_main -lc -lm -u newlib_include_heap_impl -u newlib_include_syscalls_impl -u newlib_include_pthread_impl -u newlib_include_assert_impl -u newlib_include_getentropy_impl -u newlib_include_init_funcs --specs=nano.specs -u pthread_include_pthread_impl -u pthread_include_pthread_cond_var_impl -u pthread_include_pthread_local_storage_impl -u pthread_include_pthread_rwlock_impl -u pthread_include_pthread_semaphore_impl -u __cxa_guard_dummy -u __cxx_init_dummy -lstdc++ esp-idf/pthread/libpthread.a esp-idf/newlib/libnewlib.a -lgcc esp-idf/cxx/libcxx.a -u esp_timer_init_include_func -u uart_vfs_include_dev_init -u usb_serial_jtag_vfs_include_dev_init -u usb_serial_jtag_connection_monitor_include -u include_esp_phy_override -lphy -lbtbb esp-idf/esp_phy/libesp_phy.a -lphy -lbtbb esp-idf/esp_phy/libesp_phy.a -lphy -lbtbb -u esp_vfs_include_console_register -u vfs_include_syscalls_impl -u esp_vfs_include_nullfs_register && : /home/coco/.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: /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libnet80211.a(ieee80211_regdomain.o):(.text.ieee80211_get_regdomain+0x0): undefined reference to `regdomain_table' /home/coco/.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: /home/coco/esp/esp-idf/components/esp_wifi/lib/esp32s3/libnet80211.a(ieee80211_regdomain.o):(.text.ieee80211_get_regdomain+0x4): undefined reference to `regulatory_data' collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed. * 终端进程“ninja”已终止,退出代码: 1。 idf编译小智ai出现错误(源码,没有修改过)
09-22
PS D:\ESP_IDF\project-name> idf.py menuconfig Executing action: menuconfig Running cmake in directory D:\ESP_IDF\project-name\build Executing "cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DPYTHON=D:\ESP_IDF\espressif\python_env\idf5.4_py3.11_env\Scripts\python.exe -DESP_PLATFORM=1 -DCCACHE_ENABLE=1 D:\ESP_IDF\project-name"... -- ccache will be used for faster recompilation -- git rev-parse returned 'fatal: not a git repository (or any of the parent directories): .git' -- Could not use 'git describe' to determine PROJECT_VER. -- Building ESP-IDF components for target esp32s3 -- Project sdkconfig file D:/ESP_IDF/project-name/sdkconfig -- Compiler supported targets: xtensa-esp-elf -- USING O3 -- App "project-name" version: 1 -- Adding linker script D:/ESP_IDF/project-name/build/esp-idf/esp_system/ld/memory.ld -- Adding linker script D:/ESP_IDF/project-name/build/esp-idf/esp_system/ld/sections.ld.in -- Adding linker script D:/ESP_IDF/v5.4.3/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.ld -- Adding linker script D:/ESP_IDF/v5.4.3/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.api.ld -- Adding linker script D:/ESP_IDF/v5.4.3/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.bt_funcs.ld -- Adding linker script D:/ESP_IDF/v5.4.3/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.libgcc.ld-- Adding linker script D:/ESP_IDF/v5.4.3/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.wdt.ld -- Adding linker script D:/ESP_IDF/v5.4.3/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.version.ld -- Adding linker script D:/ESP_IDF/v5.4.3/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.ble_master.ld -- Adding linker script D:/ESP_IDF/v5.4.3/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.ble_50.ld-- Adding linker script D:/ESP_IDF/v5.4.3/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.ble_smp.ld -- Adding linker script D:/ESP_IDF/v5.4.3/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.ble_dtm.ld -- Adding linker script D:/ESP_IDF/v5.4.3/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.ble_test.ld -- Adding linker script D:/ESP_IDF/v5.4.3/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.ble_scan.ld -- Adding linker script D:/ESP_IDF/v5.4.3/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.newlib.ld-- Adding linker script D:/ESP_IDF/v5.4.3/esp-idf/components/soc/esp32s3/ld/esp32s3.peripherals.ld -- Components: app_trace app_update bootloader bootloader_support bt cmock console cxx driver efuse esp-tls esp_adc esp_app_format esp_bootloader_format esp_coex esp_common esp_driver_ana_cmpr esp_driver_cam esp_driver_dac esp_driver_gpio esp_driver_gptimer esp_driver_i2c esp_driver_i2s esp_driver_isp esp_driver_jpeg esp_driver_ledc esp_driver_mcpwm esp_driver_parlio esp_driver_pcnt esp_driver_ppa esp_driver_rmt esp_driver_sdio esp_driver_sdm esp_driver_sdmmc esp_driver_sdspi esp_driver_spi esp_driver_touch_sens esp_driver_tsens esp_driver_uart esp_driver_usb_serial_jtag esp_eth esp_event esp_gdbstub esp_hid esp_http_client esp_http_server esp_https_ota esp_https_server esp_hw_support esp_lcd esp_local_ctrl esp_mm esp_netif esp_netif_stack esp_partition esp_phy esp_pm esp_psram esp_ringbuf esp_rom esp_security esp_system esp_timer esp_vfs_console esp_wifi espcoredump esptool_py fatfs freertos hal heap http_parser idf_test ieee802154 json log lwip main mbedtls mqtt newlib nvs_flash nvs_sec_provider openthread partition_table perfmon protobuf-c protocomm pthread rt sdmmc soc spi_flash spiffs tcp_transport touch_element ulp unity usb vfs wear_levelling wifi_provisioning wpa_supplicant xtensa -- Component paths: D:/ESP_IDF/v5.4.3/esp-idf/components/app_trace D:/ESP_IDF/v5.4.3/esp-idf/components/app_update D:/ESP_IDF/v5.4.3/esp-idf/components/bootloader D:/ESP_IDF/v5.4.3/esp-idf/components/bootloader_support D:/ESP_IDF/v5.4.3/esp-idf/components/bt D:/ESP_IDF/v5.4.3/esp-idf/components/cmock D:/ESP_IDF/v5.4.3/esp-idf/components/console D:/ESP_IDF/v5.4.3/esp-idf/components/cxx D:/ESP_IDF/v5.4.3/esp-idf/components/driver D:/ESP_IDF/v5.4.3/esp-idf/components/efuse D:/ESP_IDF/v5.4.3/esp-idf/components/esp-tls D:/ESP_IDF/v5.4.3/esp-idf/components/esp_adc D:/ESP_IDF/v5.4.3/esp-idf/components/esp_app_format D:/ESP_IDF/v5.4.3/esp-idf/components/esp_bootloader_format D:/ESP_IDF/v5.4.3/esp-idf/components/esp_coex D:/ESP_IDF/v5.4.3/esp-idf/components/esp_common D:/ESP_IDF/v5.4.3/esp-idf/components/esp_driver_ana_cmpr D:/ESP_IDF/v5.4.3/esp-idf/components/esp_driver_cam D:/ESP_IDF/v5.4.3/esp-idf/components/esp_driver_dac D:/ESP_IDF/v5.4.3/esp-idf/components/esp_driver_gpio D:/ESP_IDF/v5.4.3/esp-idf/components/esp_driver_gptimer D:/ESP_IDF/v5.4.3/esp-idf/components/esp_driver_i2c D:/ESP_IDF/v5.4.3/esp-idf/components/esp_driver_i2s D:/ESP_IDF/v5.4.3/esp-idf/components/esp_driver_isp D:/ESP_IDF/v5.4.3/esp-idf/components/esp_driver_jpeg D:/ESP_IDF/v5.4.3/esp-idf/components/esp_driver_ledc D:/ESP_IDF/v5.4.3/esp-idf/components/esp_driver_mcpwm D:/ESP_IDF/v5.4.3/esp-idf/components/esp_driver_parlio D:/ESP_IDF/v5.4.3/esp-idf/components/esp_driver_pcnt D:/ESP_IDF/v5.4.3/esp-idf/components/esp_driver_ppa D:/ESP_IDF/v5.4.3/esp-idf/components/esp_driver_rmt D:/ESP_IDF/v5.4.3/esp-idf/components/esp_driver_sdio D:/ESP_IDF/v5.4.3/esp-idf/components/esp_driver_sdm D:/ESP_IDF/v5.4.3/esp-idf/components/esp_driver_sdmmc D:/ESP_IDF/v5.4.3/esp-idf/components/esp_driver_sdspi D:/ESP_IDF/v5.4.3/esp-idf/components/esp_driver_spi D:/ESP_IDF/v5.4.3/esp-idf/components/esp_driver_touch_sens D:/ESP_IDF/v5.4.3/esp-idf/components/esp_driver_tsens D:/ESP_IDF/v5.4.3/esp-idf/components/esp_driver_uart D:/ESP_IDF/v5.4.3/esp-idf/components/esp_driver_usb_serial_jtag D:/ESP_IDF/v5.4.3/esp-idf/components/esp_eth D:/ESP_IDF/v5.4.3/esp-idf/components/esp_event D:/ESP_IDF/v5.4.3/esp-idf/components/esp_gdbstub D:/ESP_IDF/v5.4.3/esp-idf/components/esp_hid D:/ESP_IDF/v5.4.3/esp-idf/components/esp_http_client D:/ESP_IDF/v5.4.3/esp-idf/components/esp_http_server D:/ESP_IDF/v5.4.3/esp-idf/components/esp_https_ota D:/ESP_IDF/v5.4.3/esp-idf/components/esp_https_server D:/ESP_IDF/v5.4.3/esp-idf/components/esp_hw_support D:/ESP_IDF/v5.4.3/esp-idf/components/esp_lcd D:/ESP_IDF/v5.4.3/esp-idf/components/esp_local_ctrl D:/ESP_IDF/v5.4.3/esp-idf/components/esp_mm D:/ESP_IDF/v5.4.3/esp-idf/components/esp_netif D:/ESP_IDF/v5.4.3/esp-idf/components/esp_netif_stack D:/ESP_IDF/v5.4.3/esp-idf/components/esp_partition D:/ESP_IDF/v5.4.3/esp-idf/components/esp_phy D:/ESP_IDF/v5.4.3/esp-idf/components/esp_pm D:/ESP_IDF/v5.4.3/esp-idf/components/esp_psram D:/ESP_IDF/v5.4.3/esp-idf/components/esp_ringbuf D:/ESP_IDF/v5.4.3/esp-idf/components/esp_rom D:/ESP_IDF/v5.4.3/esp-idf/components/esp_security D:/ESP_IDF/v5.4.3/esp-idf/components/esp_system D:/ESP_IDF/v5.4.3/esp-idf/components/esp_timer D:/ESP_IDF/v5.4.3/esp-idf/components/esp_vfs_console D:/ESP_IDF/v5.4.3/esp-idf/components/esp_wifi D:/ESP_IDF/v5.4.3/esp-idf/components/espcoredump D:/ESP_IDF/v5.4.3/esp-idf/components/esptool_py D:/ESP_IDF/v5.4.3/esp-idf/components/fatfs D:/ESP_IDF/v5.4.3/esp-idf/components/freertos D:/ESP_IDF/v5.4.3/esp-idf/components/hal D:/ESP_IDF/v5.4.3/esp-idf/components/heap D:/ESP_IDF/v5.4.3/esp-idf/components/http_parser D:/ESP_IDF/v5.4.3/esp-idf/components/idf_test D:/ESP_IDF/v5.4.3/esp-idf/components/ieee802154 D:/ESP_IDF/v5.4.3/esp-idf/components/json D:/ES(Top) Espressif IoT Development Framework Configuration Build type ---> Bootloader config ---> Security features ---> Application manager ---> Boot ROM Behavior ---> Serial flasher config ---> Partition Table ---> Compiler options ---> Component config ---> [ ] Make experimental features visible [Space/Enter] Toggle/enter [ESC] Leave menu [S] Save [O] Load [?] Symbol info [/] Jump to symbol [F] Toggle show-help mode [C] Toggle show-name mode [A] Toggle show-all mode [Q] Quit (prompts for save) [D] Save minimal config (advanced)
最新发布
11-28
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值