有没有办法在 Sming IDE (ESP8266) 中使用 std::map?
Is there a way to use std::map in Sming IDE (ESP8266)?
我正在尝试在使用 Sming 2.1.0 开发的 ESP8266 固件中使用 std::map(在 Windows 7 SP1 上)。
我遇到以下错误:
undefined reference to `std::_Rb_tree_decrement(std::_Rb_tree_node_base*)'
根据这个 http://www.esp8266.com/viewtopic.php?p=40593 and this ESP8266 for Arduino IDE (xtensa-lx106-elf-gcc) and std::map linking error,应该将 -lstdc++(可能还有 -lsupc++)添加到 link 的库列表中。
但是在Sming的Makefile-project.mk中有-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/ 建议如下:
Try using the -nostdlib link option.
太棒了!
我试过使用arduino-esp8266的xtensa-lx106-elf
https://github.com/rogerclarkmelbourne/arduino-esp8266/tree/master/tools/xtensa-lx106-elf(它包括 crt1-sim.o、_vectors.o 和其他库)但它没有帮助。
我还没有找到最终答案:"If there a way to use std::map and so on in Sming?"
在此先感谢您的帮助。
毕竟构建它。结果很简单。
我应该将 stdc++ supc++ 添加到 LIBS 而不是 LDFLAGS
即:
LIBS = stdc++ supc++ microc ...
并保持 LDFLAGS 不变(使用 -nostdlib)
LDFLAGS = -nostdlib ...
我正在尝试在使用 Sming 2.1.0 开发的 ESP8266 固件中使用 std::map(在 Windows 7 SP1 上)。 我遇到以下错误:
undefined reference to `std::_Rb_tree_decrement(std::_Rb_tree_node_base*)'
根据这个 http://www.esp8266.com/viewtopic.php?p=40593 and this ESP8266 for Arduino IDE (xtensa-lx106-elf-gcc) and std::map linking error,应该将 -lstdc++(可能还有 -lsupc++)添加到 link 的库列表中。
但是在Sming的Makefile-project.mk中有-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/ 建议如下:
Try using the -nostdlib link option.
太棒了!
我试过使用arduino-esp8266的xtensa-lx106-elf https://github.com/rogerclarkmelbourne/arduino-esp8266/tree/master/tools/xtensa-lx106-elf(它包括 crt1-sim.o、_vectors.o 和其他库)但它没有帮助。
我还没有找到最终答案:"If there a way to use std::map and so on in Sming?"
在此先感谢您的帮助。
毕竟构建它。结果很简单。
我应该将 stdc++ supc++ 添加到 LIBS 而不是 LDFLAGS 即:
LIBS = stdc++ supc++ microc ...
并保持 LDFLAGS 不变(使用 -nostdlib)
LDFLAGS = -nostdlib ...