首页 > 解决方案 > 使用 Eclipse Photon CDT Core Builder 编译 avr c++ lib

问题描述

我正在尝试编译我在Eclipse下编写的 Arduino lib 。这是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 天了。我来自Java开发,所以请耐心等待。我的 lib 使用了一些 c++ 标准类,std::vector 等等。使用 Arduino IDE 一切正常,但 5 天后它对我来说是不切实际的,所以我决定在 5 年后用 Eclipse 重新尝试 Arduino(我的第一次 eclipse-cdt 体验既糟糕又复杂)。在最新的 Photon 版本中,我注意到“Arduino”模板项目和 Arduino 库管理器包括“开箱即用”,所以我决定试一试。

我实际上使用的是 ESP32 板,但同样,我对上传/执行代码不感兴趣。我只需要能够轻松地重构它

标签: arduinoeclipse-cdtavr-gcceclipse-photon

解决方案


推荐阅读