完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在espidf的example里,复制了一个工程出来,自己添加了comments文件夹,将example中softAP代码添加到组件里。Code: Select all
ESP_LOGI(TAG, "station "MACSTR" leave, AID=%d", MAC2STR(event->mac), event->aid); 这句编译时报错。 目录结构是:Code: Select all .├── CMakeLists.txt├── README.md├── components│ ├── README.md│ ├── http_server│ │ ├── CMakeLists.txt│ │ ├── html│ │ │ ├── jquery.min.js.gz│ │ │ └── web.html.gz│ │ ├── web_server.c│ │ └── web_server.h│ └── softAP│ ├── CMakeLists.txt│ ├── Kconfig.projbuild│ ├── soft_ap.c│ └── soft_ap.h├── main│ ├── CMakeLists.txt│ ├── Kconfig.projbuild│ ├── nmea_parser.c│ ├── nmea_parser.h│ └── nmea_parser_example_main.c├── sdkconfig└── sdkconfig.old5 directories, 19 files 当components下只有softAP组件时能编译通过,添加了http_server组件就会报错。 具体报错如下:Code: Select all In file included from ../components/softAP/soft_ap.c:15:../components/softAP/soft_ap.c: In function 'wifi_event_handler':../components/softAP/soft_ap.c:44:33: error: expected ')' before 'MACSTR' ESP_LOGI(TAG, "station "MACSTR" join, AID=%d", ^~~~~~/home/tommy/esp_s3/esp-idf/components/log/include/esp_log.h:281:79: note: in definition of macro 'LOG_FORMAT' #define LOG_FORMAT(letter, format) LOG_COLOR_ ## letter #letter " (%u) %s: " format LOG_RESET_COLOR "n" ^~~~~~/home/tommy/esp_s3/esp-idf/components/log/include/esp_log.h:431:41: note: in expansion of macro 'ESP_LOG_LEVEL' if ( LOG_LOCAL_LEVEL >= level ) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); ^~~~~~~~~~~~~/home/tommy/esp_s3/esp-idf/components/log/include/esp_log.h:341:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' #define ESP_LOGI( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_INFO, tag, format, ##__VA_ARGS__) ^~~~~~~~~~~~~~~~~~~../components/softAP/soft_ap.c:44:9: note: in expansion of macro 'ESP_LOGI' ESP_LOGI(TAG, "station "MACSTR" join, AID=%d", ^~~~~~~~/home/tommy/esp_s3/esp-idf/components/log/include/esp_log.h:264:27: error: format '%u' expects a matching 'unsigned int' argument [-Werror=format=] #define LOG_COLOR(COLOR) "�33[0;" COLOR "m" ^~~~~~~~~ cmakelists.txt内容为:Code: Select all http_server下:idf_component_register(SRCS "web_server.c" INCLUDE_DIRS "." EMBED_FILES "./html/web.html.gz" "./html/jquery.min.js.gz" PRIV_REQUIRES nvs_flash esp_http_server) Code: Select all softAP下:idf_component_register(SRCS "soft_ap.c" INCLUDE_DIRS "." PRIV_REQUIRES nvs_flash esp_http_server) 实在不太懂这个错误的来源,请有经验的大佬指点一下。 |
|
相关推荐
1个回答
|
|
根据您提供的信息,我将尝试分析可能导致编译错误的原因。首先,让我们逐步检查代码和目录结构。
1. 检查代码:您提供的代码行是用于记录日志的,使用了ESP_LOGI宏。从代码行来看,格式和参数似乎没有问题。 ```c ESP_LOGI(TAG, "station "MACSTR" leave, AID=%d", MAC2STR(event->mac), event->aid); ``` 2. 检查目录结构:您的目录结构看起来是正确的,组件被放置在components文件夹下。 ``` . ├── CMakeLists.txt ├── README.md ├── components │ ├── README.md │ ├── http_server ``` 3. 检查组件的CMakeLists.txt文件:确保您的组件CMakeLists.txt文件正确地包含了所需的源文件和库。例如: ```cmake idf_component_register(SRCS "http_server.c" INCLUDE_DIRS ".") ``` 4. 检查组件的依赖关系:确保您的组件依赖于ESP-IDF的日志库。在组件的CMakeLists.txt文件中添加以下行: ```cmake target_add_binary_data(${COMPONENT_TARGET} "${CMAKE_CURRENT_SOURCE_DIR}/your_data_file.bin" "your_data_file.bin") ``` 5. 检查组件的权限:确保您的组件文件夹和文件具有正确的权限,以便ESP-IDF可以正确读取它们。 6. 检查组件的名称:确保组件的名称在CMakeLists.txt文件中正确定义,并且与组件文件夹的名称一致。 如果以上步骤都无法解决问题,请尝试以下操作: - 清理项目并重新构建:在终端中,进入项目目录,运行`idf.py fullclean`,然后重新构建项目。 - 检查ESP-IDF版本:确保您使用的ESP-IDF版本与您的项目兼容。 - 查看编译错误日志:仔细阅读编译错误日志,以获取更多关于错误的详细信息。 希望这些建议能帮助您解决问题。如果问题仍然存在,请提供更多详细信息,以便我能更好地帮助您。 |
|
|
|
只有小组成员才能发言,加入小组>>
474浏览 6评论
397浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
377浏览 5评论
383浏览 4评论
354浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-28 12:57 , Processed in 0.736913 second(s), Total 83, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号