« ESP8266のArduinoのSDWebServerがうまく動かない訳 | トップページ | ESP8266とArduino »

2015年7月11日 (土)

ESP8266のArduinoでvectorでエラーになる

ESP8266のArduinoでvectorでエラーになる

ボードをGeneric ESP8266 Moduleでvecterでエラーになる。
以下のようにarduino.hとvectorをincludeすると

#include <arduino.h>
#include <vector>

void setup() {
}

void loop() {
}

以下のエラーになる。

Arduino: 1.6.4 (Windows 7), ボード:"Generic ESP8266 Module, 80 MHz, 115200, 512K (64K SPIFFS)"

ビルドオプションが変更されました。全体をリビルドしています。

In file included from sketch_jul10c.ino:1:0:
c:\users\mtada\appdata\roaming\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_vector.h: In member function 'std::vector<_Tp, _Alloc>::size_type std::vector<_Tp, _Alloc>::_M_check_len(std::vector<_Tp, _Alloc>::size_type, const char*) const':
C:\Users\mtada\AppData\Roaming\Arduino15\packages\esp8266\hardware\esp8266\1.6.4-673-g8cd3697\cores\esp8266/arduino.h:217:18: error: expected unqualified-id before '(' token
#define max(a,b) ((a)>(b)?(a):(b))
                  ^
c:\users\mtada\appdata\roaming\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_bvector.h: In member function 'std::vector<bool, _Alloc>::size_type std::vector<bool, _Alloc>::_M_check_len(std::vector<bool, _Alloc>::size_type, const char*) const':
C:\Users\mtada\AppData\Roaming\Arduino15\packages\esp8266\hardware\esp8266\1.6.4-673-g8cd3697\cores\esp8266/arduino.h:217:18: error: expected unqualified-id before '(' token
#define max(a,b) ((a)>(b)?(a):(b))
                  ^
コンパイル時にエラーが発生しました。

  This report would have more information with
  "コンパイル中の詳細な出力を表示する"
  ファイル > 設定 で有効にする

ESP8266WebServer.cppのsend()でレスポンスヘッダーが重複する問題をvectorを使って解決しようとしてテストコードは出来てのですが、いざESP8266WebServer.cppに組み込むとエラー。
いろいろ調べると上記のようにincludeするだけでエラーになることが判明

ちなみにArduino NANOでvectorが無いとエラーになるので無いみたいです。

ESP8266WebServer.cppのあるフォルダにESP8266WebServer.cpp.origというファイルがある。
このvoid ESP8266WebServer::send(int code, const char* content_type, String content)は引数で渡されるcontent_typeのみレスポンスヘッダーに追加する。
これの方が良い。

« ESP8266のArduinoのSDWebServerがうまく動かない訳 | トップページ | ESP8266とArduino »

Arduino」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/569662/61868968

この記事へのトラックバック一覧です: ESP8266のArduinoでvectorでエラーになる:

« ESP8266のArduinoのSDWebServerがうまく動かない訳 | トップページ | ESP8266とArduino »