2016-07-24 11 views
1

Ich versuche std :: map in ESP8266 Firmware zu verwenden, die mit Sming 2.1.0 (unter Windows 7 SP1) entwickelt. Ich habe folgende Fehlermeldung anzeigt:Gibt es eine Möglichkeit, std :: map in der Sming-IDE (ESP8266) zu verwenden?

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

Nach dieser http://www.esp8266.com/viewtopic.php?p=40593 und diese ESP8266 for Arduino IDE (xtensa-lx106-elf-gcc) and std::map linking error sollte man -lstdC++ (und möglicherweise -lsupC++) in die Liste der Bibliotheken hinzufügen zu verbinden mit.

Aber in Makefile-project.mk in Sming gibt es -nostdlib Flag!

LDFLAGS = -nostdlib ... 

Wenn ich es ändern, anstatt die Fehler bekam zu -lstdC++ -lsupC++ Ich habe:

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 

Und das folgende hier https://www.reddit.com/r/esp8266/comments/3pmyx8/trying_to_link_but_getting_weird_errors/ empfohlen zu lösen:

Try using the -nostdlib link option.

Brilliant!

Ich habe versucht, Xtensa-lx106-Elf von Arduino-Esp8266 https://github.com/rogerclarkmelbourne/arduino-esp8266/tree/master/tools/xtensa-lx106-elf (es enthält CRT1-sim.o, _vectors.o und andere Libs), aber es nicht helfen, zu verwenden.

Ich habe keine endgültige Antwort gefunden: "Wenn es eine Möglichkeit gibt, std :: map und so weiter in Sming zu verwenden?"

Vielen Dank im Voraus für Hilfe.

Antwort

0

Build es doch. Am Ende war es einfach.

Ich sollte hinzufügen STDC++ SUPC++ zu LIBS nicht ldflags Das heißt:

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

Und bleiben ldflags das gleiche (mit -nostdlib)

LDFLAGS = -nostdlib ... 
Verwandte Themen