Ninja build fails without any error message

Hello guys!

However I’m new in this forum, I’m using platformIO for years and I really appreciate your effort!

Today I’m facing some problems with some (maybe old) LCD libraries used in PlatformIO. The build log shows nothing really:

====================[ Build | Production | nanoatmega328 ]======================
C:\Users\zsolt\AppData\Local\JetBrains\Toolbox\apps\CLion\ch-0\221.5591.52\bin\cmake\win\bin\cmake.exe --build D:\arduino\scylla-display\cmake-build-nanoatmega328 --target Production -j 9
[1/1] cmd.exe /C "cd /D D:\arduino\scylla-display && platformio -c clion run -enanoatmega328"
FAILED: CMakeFiles/Production D:/arduino/scylla-display/cmake-build-nanoatmega328/CMakeFiles/Production 
cmd.exe /C "cd /D D:\arduino\scylla-display && platformio -c clion run -enanoatmega328"
Processing nanoatmega328 (platform: atmelavr; board: nanoatmega328; framework: arduino)
--------------------------------------------------------------------------------
CONFIGURATION: https://docs.platformio.org/page/boards/atmelavr/nanoatmega328.html
PLATFORM: Atmel AVR (3.4.0) > Arduino Nano ATmega328
HARDWARE: ATMEGA328P 16MHz, 2KB RAM, 30KB Flash
DEBUG: Current (avr-stub) On-board (avr-stub, simavr)
PACKAGES: 
 - framework-arduino-avr @ 5.1.0 
 - toolchain-atmelavr @ 1.70300.191015 (7.3.0)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 10 compatible libraries
Scanning dependencies...
Dependency Graph
|-- Adafruit ST7735 and ST7789 Library @ 1.9.3(License: Unknown, Path: D:\arduino\scylla-display\.pio\libdeps\nanoatmega328\Adafruit ST7735 and ST7789 Library)
|   |-- Adafruit GFX Library @ 1.11.1(License: Unknown, Path: D:\arduino\scylla-display\.pio\libdeps\nanoatmega328\Adafruit GFX Library)
|   |   |-- SPI @ 1.0(License: Unknown, Path: C:\Users\zsolt\.platformio\packages\framework-arduino-avr\libraries\SPI)
|   |-- SPI @ 1.0(License: Unknown, Path: C:\Users\zsolt\.platformio\packages\framework-arduino-avr\libraries\SPI)
|-- Adafruit GFX Library @ 1.11.1(License: Unknown, Path: D:\arduino\scylla-display\.pio\libdeps\nanoatmega328\Adafruit GFX Library)
|   |-- SPI @ 1.0(License: Unknown, Path: C:\Users\zsolt\.platformio\packages\framework-arduino-avr\libraries\SPI)
|-- SPI @ 1.0(License: Unknown, Path: C:\Users\zsolt\.platformio\packages\framework-arduino-avr\libraries\SPI)
Building in release mode
avr-g++ -o .pio\build\nanoatmega328\src\main.cpp.o -c -fno-exceptions -fno-threadsafe-statics -fpermissive -std=gnu++11 -Os -Wall -ffunction-sections -fdata-sections -flto -mmcu=atmega328p -DPLATFORMIO=60000 -DARDUINO_AVR_NANO -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO=10808 -Iinclude -Isrc "-I.pio\libdeps\nanoatmega328\Adafruit ST7735 and ST7789 Library" "-I.pio\libdeps\nanoatmega328\Adafruit GFX Library" -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\libraries\SPI\src -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\cores\arduino -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\variants\eightanaloginputs src\main.cpp
avr-g++ -o .pio\build\nanoatmega328\lib1e7\SPI\SPI.cpp.o -c -fno-exceptions -fno-threadsafe-statics -fpermissive -std=gnu++11 -Os -Wall -ffunction-sections -fdata-sections -flto -mmcu=atmega328p -DPLATFORMIO=60000 -DARDUINO_AVR_NANO -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO=10808 -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\libraries\SPI\src -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\cores\arduino -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\variants\eightanaloginputs C:\Users\zsolt\.platformio\packages\framework-arduino-avr\libraries\SPI\src\SPI.cpp
avr-g++ -o ".pio\build\nanoatmega328\libda7\Adafruit GFX Library\Adafruit_GFX.cpp.o" -c -fno-exceptions -fno-threadsafe-statics -fpermissive -std=gnu++11 -Os -Wall -ffunction-sections -fdata-sections -flto -mmcu=atmega328p -DPLATFORMIO=60000 -DARDUINO_AVR_NANO -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO=10808 "-I.pio\libdeps\nanoatmega328\Adafruit GFX Library" -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\libraries\SPI\src -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\cores\arduino -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\variants\eightanaloginputs ".pio\libdeps\nanoatmega328\Adafruit GFX Library\Adafruit_GFX.cpp"
avr-g++ -o ".pio\build\nanoatmega328\libda7\Adafruit GFX Library\Adafruit_GrayOLED.cpp.o" -c -fno-exceptions -fno-threadsafe-statics -fpermissive -std=gnu++11 -Os -Wall -ffunction-sections -fdata-sections -flto -mmcu=atmega328p -DPLATFORMIO=60000 -DARDUINO_AVR_NANO -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO=10808 "-I.pio\libdeps\nanoatmega328\Adafruit GFX Library" -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\libraries\SPI\src -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\cores\arduino -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\variants\eightanaloginputs ".pio\libdeps\nanoatmega328\Adafruit GFX Library\Adafruit_GrayOLED.cpp"
avr-g++ -o ".pio\build\nanoatmega328\libda7\Adafruit GFX Library\Adafruit_SPITFT.cpp.o" -c -fno-exceptions -fno-threadsafe-statics -fpermissive -std=gnu++11 -Os -Wall -ffunction-sections -fdata-sections -flto -mmcu=atmega328p -DPLATFORMIO=60000 -DARDUINO_AVR_NANO -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO=10808 "-I.pio\libdeps\nanoatmega328\Adafruit GFX Library" -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\libraries\SPI\src -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\cores\arduino -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\variants\eightanaloginputs ".pio\libdeps\nanoatmega328\Adafruit GFX Library\Adafruit_SPITFT.cpp"
avr-gcc -o ".pio\build\nanoatmega328\libda7\Adafruit GFX Library\glcdfont.c.o" -c -std=gnu11 -fno-fat-lto-objects -Os -Wall -ffunction-sections -fdata-sections -flto -mmcu=atmega328p -DPLATFORMIO=60000 -DARDUINO_AVR_NANO -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO=10808 "-I.pio\libdeps\nanoatmega328\Adafruit GFX Library" -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\libraries\SPI\src -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\cores\arduino -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\variants\eightanaloginputs ".pio\libdeps\nanoatmega328\Adafruit GFX Library\glcdfont.c"
avr-g++ -o ".pio\build\nanoatmega328\lib159\Adafruit ST7735 and ST7789 Library\Adafruit_ST7735.cpp.o" -c -fno-exceptions -fno-threadsafe-statics -fpermissive -std=gnu++11 -Os -Wall -ffunction-sections -fdata-sections -flto -mmcu=atmega328p -DPLATFORMIO=60000 -DARDUINO_AVR_NANO -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO=10808 "-I.pio\libdeps\nanoatmega328\Adafruit ST7735 and ST7789 Library" "-I.pio\libdeps\nanoatmega328\Adafruit GFX Library" -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\libraries\SPI\src -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\cores\arduino -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\variants\eightanaloginputs ".pio\libdeps\nanoatmega328\Adafruit ST7735 and ST7789 Library\Adafruit_ST7735.cpp"
avr-g++ -o ".pio\build\nanoatmega328\lib159\Adafruit ST7735 and ST7789 Library\Adafruit_ST7789.cpp.o" -c -fno-exceptions -fno-threadsafe-statics -fpermissive -std=gnu++11 -Os -Wall -ffunction-sections -fdata-sections -flto -mmcu=atmega328p -DPLATFORMIO=60000 -DARDUINO_AVR_NANO -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO=10808 "-I.pio\libdeps\nanoatmega328\Adafruit ST7735 and ST7789 Library" "-I.pio\libdeps\nanoatmega328\Adafruit GFX Library" -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\libraries\SPI\src -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\cores\arduino -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\variants\eightanaloginputs ".pio\libdeps\nanoatmega328\Adafruit ST7735 and ST7789 Library\Adafruit_ST7789.cpp"
avr-g++ -o ".pio\build\nanoatmega328\lib159\Adafruit ST7735 and ST7789 Library\Adafruit_ST77xx.cpp.o" -c -fno-exceptions -fno-threadsafe-statics -fpermissive -std=gnu++11 -Os -Wall -ffunction-sections -fdata-sections -flto -mmcu=atmega328p -DPLATFORMIO=60000 -DARDUINO_AVR_NANO -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO=10808 "-I.pio\libdeps\nanoatmega328\Adafruit ST7735 and ST7789 Library" "-I.pio\libdeps\nanoatmega328\Adafruit GFX Library" -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\libraries\SPI\src -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\cores\arduino -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\variants\eightanaloginputs ".pio\libdeps\nanoatmega328\Adafruit ST7735 and ST7789 Library\Adafruit_ST77xx.cpp"
avr-gcc-ar rc .pio\build\nanoatmega328\libFrameworkArduinoVariant.a
avr-g++ -o .pio\build\nanoatmega328\FrameworkArduino\CDC.cpp.o -c -fno-exceptions -fno-threadsafe-statics -fpermissive -std=gnu++11 -Os -Wall -ffunction-sections -fdata-sections -flto -mmcu=atmega328p -DPLATFORMIO=60000 -DARDUINO_AVR_NANO -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO=10808 -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\cores\arduino -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\variants\eightanaloginputs C:\Users\zsolt\.platformio\packages\framework-arduino-avr\cores\arduino\CDC.cpp
avr-g++ -o .pio\build\nanoatmega328\FrameworkArduino\HardwareSerial.cpp.o -c -fno-exceptions -fno-threadsafe-statics -fpermissive -std=gnu++11 -Os -Wall -ffunction-sections -fdata-sections -flto -mmcu=atmega328p -DPLATFORMIO=60000 -DARDUINO_AVR_NANO -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO=10808 -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\cores\arduino -IC:\Users\zsolt\.platformio\packages\framework-arduino-avr\variants\eightanaloginputs C:\Users\zsolt\.platformio\packages\framework-arduino-avr\cores\arduino\HardwareSerial.cpp
avr-gcc-ranlib .pio\build\nanoatmega328\libFrameworkArduinoVariant.a
ninja: build stopped: subcommand failed.

Can any of you help me out with this? I’m clueless.

What I did checked is the followings:

  1. Reinstalled the library several times.
  2. Created a blinky with the same board setup, works fine
  3. Tried to install library from git repo, nothing
  4. Installed the same library into Arduino IDE, works fine there
  5. Tried cleaning and reinitializing repo multiple times, nothing

Thanks for your help,
Zsolt

When you open a terminal go into the project directory and execute

pio run -j1

in there, what does it show?

Hello Max,

Thanks for the reply, that was helpful. The problem was some functions had not been declared before usage (copied from an Arduino example file), hence the compilation failed. However this was always shown before, but not now.

For others having problems with it: I just simply checked the legacy generator in Clion to use mingw make instead of ninja. Thus if I have some compilation error, I will see it in the output window.

I think this is extremely crucial if that is not the default. What exact version of CLion are you using for reproduction?

Hello Max,

I’m using the most recent version, more precisely CLion 2022.1.1. Also I remembered that the build configuration can be changed in Settings > Build, Execution, Deployment > CMake: