Компиляция avr c ++ lib с помощью Eclipse Photon CDT Core Builder - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь скомпилировать библиотеку Arduino, которую пишу под Eclipse . Это базовый эскиз sx.cpp, который я использую, он компилируется с использованием стандартной Arduino IDE 1.8.0 :

#include <Arduino.h>
#include <vector>

void setup() {

}

void loop() {

 std::vector<byte> a(0x22);
}

Это компилятор:

Building sx
"C:/Users/Ale/Documents/Arduino/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   -I"C:/Users/Ale/Documents/Arduino/packages/arduino/hardware/avr/1.6.21/cores/arduino" -I"C:/Users/Ale/Documents/Arduino/packages/arduino/hardware/avr/1.6.21/variants/standard" "../../sx.cpp" -o "project/sx.cpp.o"
../../sx.cpp:3:18: fatal error: vector: No such file or directory
 #include <vector>
                  ^
compilation terminated.
make: *** [project/sx.cpp.o] Error 1
makefile:67: recipe for target 'project/sx.cpp.o' failed

Я использую Eclipse 4.8.0 и характер проекта Arduino (основной компилятор CDT), но я не заинтересован в загрузке на реальные платы и / или отладке. Без vector a и соответствующих #, включая , конечно, он компилируется.

(РЕДАКТИРОВАТЬ) Более длинная история:

Я пишу эту библиотеку около 5 дней с текстовыми редакторами. Я пришел из разработки Java, поэтому, пожалуйста, будьте терпеливы. Моя библиотека использует некоторые стандартные классы c ++, std :: vector и пару других. Все было в порядке, используя Arduino IDE, но через 5 дней это было непрактично для меня, поэтому я решил повторить попытку Arduino с Eclipse через 5 лет (мой первый опыт eclipse-cdt был ужасным и сложным). В новой версии Photon я заметил шаблонный проект Arduino, а менеджер lib Arduino включил «из коробки», поэтому я решил попробовать.

Я на самом деле использую плату ESP32, но опять же, я не заинтересован в загрузке / выполнении кода. Мне просто нужно уметь провести его рефакторинг

...