Попытка включить httpclient.h в ldebug.c приводит к ошибке во время компиляции - PullRequest
0 голосов
/ 03 января 2019

Моя цель - сделать http-запрос внутри ldebug.c, включив httpclient.Это работало в 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);

Есть ли другой способ сделать запрос на публикацию?

1 Ответ

0 голосов
/ 04 января 2019

ICACHE_FLASH_ATTR - это макрос, определенный в файле c_types.h

Есть две причины, по которым он не будет определен.

Во-первых, ldebug.c не может включать c_types.h или включать файл, который #include c_types.h.Это легко исправить - отредактируйте ldebug.c и добавьте

#include <c_types.h>

перед #include <httpclient.h>

Другая возможность состоит в том, что символ ICACHE_FLASH не определяется при компиляции ldebug.c,Файл c_types.h определяет ICACHE_FLASH_ATTR, только если ICACHE_FLASH равен # define'd.Если первое исправление не работает, вам нужно убедиться, что вы #define ICACHE_FLASH при компиляции ldebug.c

Самый простой способ сделать это - добавить

#define ICACHE_FLASH 1

в самой первой строке ldebug.c

Или вы можете убедиться, что вы установили -DICACHE_FLASH=1 в качестве флага компилятора в любой среде разработки.Изменение ldebug.c почти наверняка является более простым способом сделать это.

...