我正在尝试编译我在 Eclipse 下编写的Arduino库。这是我正在使用的基本草图 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
和相关的#include ,它将自动编译。
(编辑)较长的故事:
我已经用文本编辑器编写了大约5天的lib。我来自Java开发,所以请耐心等待。我的库使用了一些其他的c ++标准类std :: vector。使用Arduino IDE一切都可以,但是对我来说5天后就不切实际了,所以我决定在5年后用Eclipse重新尝试Arduino(我的第一次eclipse-cdt经历非常糟糕和复杂)。在最新的Photon版本中,我注意到“ Arduino”模板项目,并且Arduino库管理器包括“开箱即用”的功能,所以我决定尝试一下。
我实际上正在使用ESP32开发板,但是我又对上载/执行代码不感兴趣。我只需要能够手动重构