Есть ли способ использовать std :: map в Sming IDE (ESP8266)?

Я пытаюсь использовать std :: map в прошивке ESP8266, разрабатываемой с помощью Sming 2.1.0 (в Windows 7 SP1).
У меня следующая ошибка:

undefined reference to `std::_Rb_tree_decrement(std::_Rb_tree_node_base*)'

Согласно этому http://www.esp8266.com/viewtopic.php?p=40593 и это ESP8266 для Arduino IDE (xtensa-lx106-elf-gcc) и std :: map link error необходимо добавить -lstdc ++ (и, возможно, -lsupc ++) в список библиотек, с которыми можно связываться.

Но в Makefile-project.mk в Sming есть флаг -nostdlib!

LDFLAGS = -nostdlib ...

Если я изменю его на -lstdc ++ -lsupc ++, я получу вместо этого следующие ошибки:

c:/espressif/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/5.1.0/../../../../xtensa-lx106-elf/bin/ld.exe: cannot find crt1-sim.o: No such file or directory
c:/espressif/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/5.1.0/../../../../xtensa-lx106-elf/bin/ld.exe: cannot find _vectors.o: No such file or directory

И решить это здесь https://www.reddit.com/r/esp8266/comments/3pmyx8/trying_to_link_but_getting_weird_errors/ рекомендуется следующее:

Попробуйте использовать опцию -nostdlib link.

Brilliant!

Я пытался использовать xtensa-lx106-elf из arduino-esp8266
https://github.com/rogerclarkmelbourne/arduino-esp8266/tree/master/tools/xtensa-lx106-elf (включает в себя crt1-sim.o, _vectors.o и другие библиотеки), но это не помогает.

Я не нашел окончательного ответа: «Есть ли способ использовать std :: map и так далее в Sming?»

Заранее спасибо за помощь.

1

Решение

Постройте это в конце концов. В конце концов это было просто.

Я должен добавить stdc ++ supc ++ в LIBS, а не в LDFLAGS
То есть:

LIBS = stdc++ supc++ microc ...

И остаются LDFLAGS одинаковыми (с -nostdlib)

LDFLAGS = -nostdlib ...
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]