Problem with platformio:build

I recently involved in a project which require teensy controller.I imported project in platformio and made sure nothing is reported wrong in platformio PROBLEMS window.However,’‘the terminal process terminated with exit code: 1’’ showed up when I run platformio:build.Specific detail is shown below:

* > Executing task in folder TEENSY1: platformio.exe run <

* Processing teensy35 (platform: teensy; board: teensy35; framework: arduino)
* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
* Verbose mode can be enabled via `-v, --verbose` option
* CONFIGURATION: https://docs.platformio.org/page/boards/teensy/teensy35.html
* PLATFORM: Teensy 4.3.0 > Teensy 3.5
* HARDWARE: MK64FX512 144MHz, 255.99KB RAM, 512KB Flash
* DEBUG: Current (jlink) External (jlink)
* PACKAGES: framework-arduinoteensy 1.145.0 (1.45), toolchain-gccarmnoneeabi 1.50401.0 (5.4.1)
* LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
* LDF Modes: Finder ~ chain, Compatibility ~ soft
* Found 97 compatible libraries
* Scanning dependencies...     
* Dependency Graph
* |-- <SdFat> 1.1.0
* |   |-- <SPI> 1.0
* |-- <ODriveArduino>
* |-- <ChRt> 1.0.0
* |-- <SparkFun BNO080 Cortex Based IMU> 1.1.1
* |   |-- <Wire> 1.0
* |   |-- <SPI> 1.0
* Compiling .pio\build\teensy35\src\backflip.cpp.o
* Compiling .pio\build\teensy35\src\datalog.cpp.o
* Compiling .pio\build\teensy35\src\debug.cpp.o
* Compiling .pio\build\teensy35\src\globals.cpp.o
* Compiling .pio\build\teensy35\src\imu.cpp.o
* Compiling .pio\build\teensy35\src\jump.cpp.o
* Compiling .pio\build\teensy35\src\main.cpp.o
* Compiling .pio\build\teensy35\src\position_control.cpp.o
* Compiling .pio\build\teensy35\src\uart.cpp.o
* Compiling .pio\build\teensy35\src\usb_serial.cpp.o
* Compiling .pio\build\teensy35\lib686\SPI\SPI.cpp.o
* Compiling .pio\build\teensy35\lib264\SdFat\FatLib\FatFile.cpp.o
* In file included from c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\utility:75:0,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/wiring.h:68,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/WProgram.h:45,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/Arduino.h:6,
*                  from lib\ODriveArduino/ODriveArduino.h:5,
*                  from src\backflip.cpp:2:
* c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\initializer_list:47:11: fatal error: definition of std::initializer_list does not match #include <initializer_list>
*      class initializer_list
*            ^
* compilation terminated.
* *** [.pio\build\teensy35\src\backflip.cpp.o] Error 1
* In file included from c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\utility:75:0,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/wiring.h:68,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/WProgram.h:45,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/arduino.h:6,
*                  from src\datalog.cpp:4:
* c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\initializer_list:47:11: fatal error: definition of std::initializer_list does not match #include <initializer_list>
*      class initializer_list
*            ^
* compilation terminated.
* *** [.pio\build\teensy35\src\datalog.cpp.o] Error 1
* In file included from c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\utility:75:0,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/wiring.h:68,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/WProgram.h:45,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/Arduino.h:6,
*                  from lib\ODriveArduino/ODriveArduino.h:5,
*                  from src\globals.h:4,
*                  from src\debug.h:5,
*                  from src\debug.cpp:1:
* c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\initializer_list:47:11: fatal error: definition of std::initializer_list does not match #include <initializer_list>
*      class initializer_list
*            ^
* compilation terminated.
* *** [.pio\build\teensy35\src\debug.cpp.o] Error 1
* In file included from c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\utility:75:0,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/wiring.h:68,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/WProgram.h:45,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/Arduino.h:6,
*                  from lib\ODriveArduino/ODriveArduino.h:5,
*                  from src\globals.h:4,
*                  from src\globals.cpp:1:
* c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\initializer_list:47:11: fatal error: definition of std::initializer_list does not match #include <initializer_list>
*      class initializer_list
*            ^
* compilation terminated.
* *** [.pio\build\teensy35\src\globals.cpp.o] Error 1
* In file included from c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\utility:75:0,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/wiring.h:68,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/WProgram.h:45,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/arduino.h:6,
*                  from src\imu.cpp:1:
* c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\initializer_list:47:11: fatal error: definition of std::initializer_list does not match #include <initializer_list>
*      class initializer_list
*            ^
* compilation terminated.
* *** [.pio\build\teensy35\src\imu.cpp.o] Error 1
* In file included from c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\utility:75:0,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/wiring.h:68,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/WProgram.h:45,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/Arduino.h:6,
*                  from lib\ODriveArduino/ODriveArduino.h:5,
*                  from src\jump.h:4,
*                  from src\jump.cpp:1:
* c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\initializer_list:47:11: fatal error: definition of std::initializer_list does not match #include <initializer_list>
*      class initializer_list
*            ^
* compilation terminated.
* *** [.pio\build\teensy35\src\jump.cpp.o] Error 1
* In file included from c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\utility:75:0,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/wiring.h:68,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/WProgram.h:45,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/Arduino.h:6,
*                  from src\main.cpp:19:
* c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\initializer_list:47:11: fatal error: definition of std::initializer_list does not match #include <initializer_list>
*      class initializer_list
*            ^
* compilation terminated.
* *** [.pio\build\teensy35\src\main.cpp.o] Error 1
* In file included from c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\utility:75:0,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/wiring.h:68,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/WProgram.h:45,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/Arduino.h:6,
*                  from lib\ODriveArduino/ODriveArduino.h:5,
*                  from src\position_control.h:5,
*                  from src\position_control.cpp:1:
* c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\initializer_list:47:11: fatal error: definition of std::initializer_list does not match #include <initializer_list>
*      class initializer_list
*            ^
* compilation terminated.
* *** [.pio\build\teensy35\src\position_control.cpp.o] Error 1
* In file included from c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\utility:75:0,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/wiring.h:68,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/WProgram.h:45,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/Arduino.h:6,
*                  from src\uart.h:5,
*                  from src\uart.cpp:1:
* c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\initializer_list:47:11: fatal error: definition of std::initializer_list does not match #include <initializer_list>
*      class initializer_list
*            ^
* compilation terminated.
* *** [.pio\build\teensy35\src\uart.cpp.o] Error 1
* In file included from c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\utility:75:0,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/wiring.h:68,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/WProgram.h:45,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/Arduino.h:6,
*                  from src\usb_serial.cpp:3:
* c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\initializer_list:47:11: fatal error: definition of std::initializer_list does not match #include <initializer_list>
*      class initializer_list
*            ^
* compilation terminated.
* *** [.pio\build\teensy35\src\usb_serial.cpp.o] Error 1
* In file included from c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\utility:75:0,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/wiring.h:68,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/WProgram.h:45,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/Arduino.h:6,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\libraries\SPI\SPI.h:16,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\libraries\SPI\SPI.cpp:11:
* c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\initializer_list:47:11: fatal error: definition of std::initializer_list does not match #include <initializer_list>
*      class initializer_list
*            ^
* compilation terminated.
* *** [.pio\build\teensy35\lib686\SPI\SPI.cpp.o] Error 1
* In file included from c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\utility:75:0,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/wiring.h:68,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/WProgram.h:45,
*                  from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/Arduino.h:6,
*                  from lib\SdFat\src/SdFatConfig.h:31,
*                  from lib\SdFat\src\FatLib\FatLibConfig.h:33,
*                  from lib\SdFat\src\FatLib\FatFile.h:35,
*                  from lib\SdFat\src\FatLib\FatFile.cpp:25:
* c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\initializer_list:47:11: fatal error: definition of std::initializer_list does not match #include <initializer_list>
*      class initializer_list
*            ^
* compilation terminated.
* *** [.pio\build\teensy35\lib264\SdFat\FatLib\FatFile.cpp.o] Error 1
* ======================================================================================================== [ERROR] Took 11.59 seconds ======================================================================================================== 
* The terminal process terminated with exit code: 1

* Terminal will be reused by tasks, press any key to close it.

I am not familiar with Platformio and looking for help…It has stucked me for days and I do acknowledge everyone would help

Can you create a minimal example with the problem and provide the platformio.ini and main.cpp file?

I tried to reproduce the issue but it built without problems. My minimal example is:

platformio.ini

[env:teensy35]
platform = teensy
board = teensy35
framework = arduino

lib_deps =
    SdFat
    ChRt
    C:\Users\SomeUser\Documents\ODrive-master\Arduino\ODriveArduino
    SparkFun BNO080 Cortex Based IMU

main.cpp

#include <Arduino.h>
#include "ODriveArduino.h"
#include "ChRt.h"
#include "SparkFun_BNO080_Arduino_Library.h"

void setup() {
}

void loop() {
}

The ODrive library is not registered so I downloaded it manually.

I just deleted the whole src code and copied your main.cpp to it.I kept the lib and platformio.ini unchanged and restarted a new workspace,but build-errors still came up.The lib files and platformio.ini are directly downloaded from github and those files should not be fault.the platformio.ini and terminal output are shown below:

platformio.ini

[env:teensy35]
platform = teensy
board = teensy35
framework = arduino
board_build.f_cpu = 144000000

output

Executing task in folder new_folder: platformio.exe run <

Processing teensy35 (platform: teensy; board: teensy35; framework: arduino)
-----------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/teensy/teensy35.html
PLATFORM: Teensy 4.3.0 > Teensy 3.5
HARDWARE: MK64FX512 144MHz, 255.99KB RAM, 512KB Flash
DEBUG: Current (jlink) External (jlink)
PACKAGES: framework-arduinoteensy 1.145.0 (1.45), toolchain-gccarmnoneeabi 1.50401.0 (5.4.1)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 97 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <ODriveArduino>
|-- <ChRt> 1.0.0
|-- <SparkFun BNO080 Cortex Based IMU> 1.1.1
|   |-- <Wire> 1.0
|   |-- <SPI> 1.0
Compiling .pio\build\teensy35\src\main.cpp.o
Compiling .pio\build\teensy35\libb61\ODriveArduino\ODriveArduino.cpp.o
Compiling .pio\build\teensy35\libc68\ChRt\ChAvrMinSerial.cpp.o
Compiling .pio\build\teensy35\libc68\ChRt\ChRt.c.o
Compiling .pio\build\teensy35\libc68\ChRt\ChRt.cpp.o
Compiling .pio\build\teensy35\libc68\ChRt\arm\chcore_v6m.c.o
Compiling .pio\build\teensy35\libc68\ChRt\arm\chcore_v7m.c.o
Compiling .pio\build\teensy35\libc68\ChRt\arm\chcore_v7m_asm.c.o
Compiling .pio\build\teensy35\libc68\ChRt\arm\chcoreasm_v6m.S.o
Compiling .pio\build\teensy35\libc68\ChRt\arm\chcoreasm_v7m.S.o
Compiling .pio\build\teensy35\libc68\ChRt\avr\chcore_avr.c.o
Compiling .pio\build\teensy35\libc68\ChRt\avr\st_lld_avr.c.o
In file included from c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\utility:75:0,
                 from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/wiring.h:68,
                 from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/WProgram.h:45,
                 from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/Arduino.h:6,
                 from lib\ODriveArduino\ODriveArduino.cpp:1:
c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\initializer_list:47:11: fatal error: definition of std::initializer_list does not match #include <initializer_list>
     class initializer_list
           ^
compilation terminated.
*** [.pio\build\teensy35\libb61\ODriveArduino\ODriveArduino.cpp.o] Error 1
In file included from c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\utility:75:0,
                 from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/wiring.h:68,
                 from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/WProgram.h:45,
                 from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/Arduino.h:6,
                 from src\main.cpp:1:
c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\initializer_list:47:11: fatal error: definition of std::initializer_list does not match #include <initializer_list>
     class initializer_list
           ^
compilation terminated.
*** [.pio\build\teensy35\src\main.cpp.o] Error 1
In file included from c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\utility:75:0,
                 from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/wiring.h:68,
                 from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/WProgram.h:45,
                 from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/Arduino.h:6,
                 from lib\ChRt\src\ChAvrMinSerial.cpp:28:
c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\initializer_list:47:11: fatal error: definition of std::initializer_list does not match #include <initializer_list>
     class initializer_list
           ^
compilation terminated.
*** [.pio\build\teensy35\libc68\ChRt\ChAvrMinSerial.cpp.o] Error 1
In file included from c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\utility:75:0,
                 from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/wiring.h:68,
                 from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/WProgram.h:45,
                 from C:\Users\Administrator\.platformio\packages\framework-arduinoteensy\cores\teensy3/Arduino.h:6,
                 from lib\ChRt\src\ChRt.cpp:1:
c:\users\administrator\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\5.4.1\initializer_list:47:11: fatal error: definition of std::initializer_list does not match #include <initializer_list>
     class initializer_list
           ^
compilation terminated.
*** [.pio\build\teensy35\libc68\ChRt\ChRt.cpp.o] Error 1
======================================== [ERROR] Took 9.81 seconds ======================================== 
The terminal process terminated with exit code: 1

Terminal will be reused by tasks, press any key to close it.

Can you clear your lib/ folder and instead declare them via lib_deps from the post above? Maybe the released versions does not match the current github versions and there’s a problem.

Also I would try to remove your

folder to make PIO redownload the compiler, in case something got corrupted. And as always, make sure you’re using the most recent version of everything.

1 Like

With a slightly more complex main.cpp to make sure something out of each of those libraries was used, I also have no issues with compile against the teensy35

platformio.ini (ODrive will be pulled from github using git if installed - install package is here if you need it)

[env:teensy35]
platform = teensy
board = teensy35
framework = arduino
board_build.f_cpu = 144000000
lib_deps =
    SdFat
    ChRt
    madcowswe/ODrive
    SparkFun BNO080 Cortex Based IMU

main.cpp (using the ODrive library as is from github as installed via platformio.ini)

#include <Arduino.h>
#include <Arduino/ODriveArduino/ODriveArduino.h>
#include <ChRt.h>
#include <SparkFun_BNO080_Arduino_Library.h>

ODriveArduino odrive();
BNO080 myIMU;

void setup()
{
  if (myIMU.begin() == false)
  {
    Serial.println("BNO080 not detected at default I2C address");
    while (1);
  }
}

void loop()
{
  chThdSleepMilliseconds(1000);
}

Two things stand out. Not likely to be the cause, but your SparkFun BNO080 Cortex Based IMU is a couple revisions behind (1.1.1 vs 1.1.5) . More likely to be the cause is that a few files in \src are compiled before sdFat\FatLib\FatFile.cpp is compiled, and that first error immediately points to src\backflip.cpp as the source of the error/conflict, so I would be looking at that file to start with as the possible culprit.

As maxgerhardt pointed out, empty your lib/ folder, delete the .pio folder (forces platformio to re-download the libraries afresh), define the libraries in your platformio.ini as I did above, and try to build it again with the main.cpp I used… if you still get errors, remove the toolchain folder so that platformio reinstalls that.

1 Like

it works! thank you for your kindly help.
The fact is I followed the given advice above and made a minor edit about installing libraries because I noticed there is differences between codes from Github and Platformio registry.The building process was fluent despite some warnings came up(which I do not believe is fatal).It seems like the former lib files is fault or Platformio require “lib_deps” definition.
Anyway,thank you.

1 Like