试图在 ldebug.c 中包含 httpclient.h 导致编译期间出错
Trying to include httpclient.h inside ldebug.c is causing an error during compilation
我的目标是通过包含 httpclient 在 ldebug.c 中执行一个 http post 请求。它在 dbg_printf.c 中有效,但我在 ldebug.c 中遇到编译错误。
In file included from ../ldebug.c:28:0:
../../http/httpclient.h:69:24: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'http_request'
void ICACHE_FLASH_ATTR http_request(const char * url, const char * method, const char * headers, const char * post_data, http_callback_t callback_handle, int redirect_follow_count);
还有其他方法可以执行 post 请求吗?
ICACHE_FLASH_ATTR
是在文件c_types.h
中定义的宏
没有定义的原因有两个。
首先,ldebug.c 可能不包含 c_types.h 或包含 #includes c_types.h 的文件。这很容易修复 - 编辑 ldebug.c 并添加
#include <c_types.h>
之前 #include <httpclient.h>
另一种可能是编译ldebug.c时没有定义符号ICACHE_FLASH
。文件 c_types.h 仅定义 ICACHE_FLASH_ATTR
如果 ICACHE_FLASH
是#define'd。如果第一个修复不起作用,您需要确保在编译 ldebug.c
时 #define ICACHE_FLASH
最简单的方法是添加
#define ICACHE_FLASH 1
作为ldebug.c
的第一行
或者您可以确保在任何开发环境中将 -DICACHE_FLASH=1
设置为编译器标志。几乎可以肯定,更改 ldebug.c 是更简单的方法。
我的目标是通过包含 httpclient 在 ldebug.c 中执行一个 http post 请求。它在 dbg_printf.c 中有效,但我在 ldebug.c 中遇到编译错误。
In file included from ../ldebug.c:28:0:
../../http/httpclient.h:69:24: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'http_request'
void ICACHE_FLASH_ATTR http_request(const char * url, const char * method, const char * headers, const char * post_data, http_callback_t callback_handle, int redirect_follow_count);
还有其他方法可以执行 post 请求吗?
ICACHE_FLASH_ATTR
是在文件c_types.h
没有定义的原因有两个。
首先,ldebug.c 可能不包含 c_types.h 或包含 #includes c_types.h 的文件。这很容易修复 - 编辑 ldebug.c 并添加
#include <c_types.h>
之前 #include <httpclient.h>
另一种可能是编译ldebug.c时没有定义符号ICACHE_FLASH
。文件 c_types.h 仅定义 ICACHE_FLASH_ATTR
如果 ICACHE_FLASH
是#define'd。如果第一个修复不起作用,您需要确保在编译 ldebug.c
#define ICACHE_FLASH
最简单的方法是添加
#define ICACHE_FLASH 1
作为ldebug.c
的第一行或者您可以确保在任何开发环境中将 -DICACHE_FLASH=1
设置为编译器标志。几乎可以肯定,更改 ldebug.c 是更简单的方法。