Eroor - multiple definition of `premain()' MySensors with PlatformIO - STM32F103

Hi All,

I am trying to compile MySensors for STM32F103 using PlatformIO and get following errors. Did anybody encounter such issues?
Of course all works fine with Arduino IDE… ;-(

Thanks,
Tom.

.pio/build/bluepill_f103c8/src/main.cpp.o: In function `premain()':
main.cpp:(.text.startup._Z7premainv+0x0): multiple definition of `premain()'
.pio/build/bluepill_f103c8/FrameworkArduino/main.cpp.o:main.cpp:(.text.startup._Z7premainv+0x0): first defined here
.pio/build/bluepill_f103c8/src/main.cpp.o: In function `main':
main.cpp:(.text.startup.main+0x0): multiple definition of `main'
.pio/build/bluepill_f103c8/FrameworkArduino/main.cpp.o:main.cpp:(.text.startup.main+0x0): first defined here
collect2: error: ld returned 1 exit status
*** [.pio/build/bluepill_f103c8/firmware.elf] Error 1

My platformio.ini

[env:bluepill_f103c8]
; extra_scripts = pre:fix_main.py
platform = ststm32
board = bluepill_f103c8
board_build.core = maple
framework = arduino

upload_protocol = stlink
debug_port = stlink
debug_tool = stlink
monitor_port = /dev/cu.usbmodem14103
monitor_speed = 115200
monitor_filters = time, default
lib_deps =     
    MySensors@2.3.2

The code is very simple:

#include <Arduino.h>
#define MY_GATEWAY_SERIAL
#include <MySensors.h>  

void setup() {
  // put your setup code here, to run once:
}

void loop() {
  // put your main code here, to run repeatedly:
}

Full compilation log:


 *  Executing task in folder testbluepill: platformio run --environment bluepill_f103c8 

Processing bluepill_f103c8 (platform: ststm32; board: bluepill_f103c8; framework: arduino)
------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/ststm32/bluepill_f103c8.html
PLATFORM: ST STM32 (15.6.0) > BluePill F103C8
HARDWARE: STM32F103C8T6 72MHz, 20KB RAM, 64KB Flash
DEBUG: Current (stlink) External (blackmagic, cmsis-dap, jlink, stlink)
PACKAGES: 
 - framework-arduinoststm32-maple @ 3.10000.201129 (1.0.0) 
 - toolchain-gccarmnoneeabi @ 1.70201.0 (7.2.1)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 31 compatible libraries
Scanning dependencies...
Dependency Graph
|-- MySensors @ 2.3.2
|   |-- Wire @ 1.0
|   |-- SPI @ 1.0
|   |-- EEPROM
Building in release mode
Linking .pio/build/bluepill_f103c8/firmware.elf
.pio/build/bluepill_f103c8/src/main.cpp.o: In function `premain()':
main.cpp:(.text.startup._Z7premainv+0x0): multiple definition of `premain()'
.pio/build/bluepill_f103c8/FrameworkArduino/main.cpp.o:main.cpp:(.text.startup._Z7premainv+0x0): first defined here
.pio/build/bluepill_f103c8/src/main.cpp.o: In function `main':
main.cpp:(.text.startup.main+0x0): multiple definition of `main'
.pio/build/bluepill_f103c8/FrameworkArduino/main.cpp.o:main.cpp:(.text.startup.main+0x0): first defined here
collect2: error: ld returned 1 exit status
*** [.pio/build/bluepill_f103c8/firmware.elf] Error 1
======================================================= [FAILED] Took 0.52 seconds =======================================================

 *  The terminal process "platformio 'run', '--environment', 'bluepill_f103c8'" terminated with exit code: 1. 
 *  Terminal will be reused by tasks, press any key to close it. 

 *  Executing task in folder testbluepill: platformio run --environment bluepill_f103c8 

Processing bluepill_f103c8 (platform: ststm32; board: bluepill_f103c8; framework: arduino)
------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/ststm32/bluepill_f103c8.html
PLATFORM: ST STM32 (15.6.0) > BluePill F103C8
HARDWARE: STM32F103C8T6 72MHz, 20KB RAM, 64KB Flash
DEBUG: Current (stlink) External (blackmagic, cmsis-dap, jlink, stlink)
PACKAGES: 
 - framework-arduinoststm32-maple @ 3.10000.201129 (1.0.0) 
 - toolchain-gccarmnoneeabi @ 1.70201.0 (7.2.1)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Library Manager: Installing MySensors @ 2.3.2

Unpacking  [------------------------------------]    0%
Unpacking  [------------------------------------]    1%
Unpacking  [------------------------------------]    2%
Unpacking  [#-----------------------------------]    3%
Unpacking  [#-----------------------------------]    4%
Unpacking  [#-----------------------------------]    5%
Unpacking  [##----------------------------------]    5%
Unpacking  [##----------------------------------]    6%
Unpacking  [##----------------------------------]    7%
Unpacking  [##----------------------------------]    8%
Unpacking  [###---------------------------------]    8%
Unpacking  [###---------------------------------]    9%
Unpacking  [###---------------------------------]   10%
Unpacking  [####--------------------------------]   11%
Unpacking  [####--------------------------------]   12%
Unpacking  [####--------------------------------]   13%
Unpacking  [#####-------------------------------]   14%
Unpacking  [#####-------------------------------]   15%
Unpacking  [#####-------------------------------]   16%
Unpacking  [######------------------------------]   16%
Unpacking  [######------------------------------]   17%
Unpacking  [######------------------------------]   18%
Unpacking  [######------------------------------]   19%
Unpacking  [#######-----------------------------]   19%
Unpacking  [#######-----------------------------]   20%
Unpacking  [#######-----------------------------]   21%
Unpacking  [########----------------------------]   22%
Unpacking  [########----------------------------]   23%
Unpacking  [########----------------------------]   24%
Unpacking  [#########---------------------------]   25%
Unpacking  [#########---------------------------]   26%
Unpacking  [#########---------------------------]   27%
Unpacking  [##########--------------------------]   27%
Unpacking  [##########--------------------------]   28%
Unpacking  [##########--------------------------]   29%
Unpacking  [##########--------------------------]   30%
Unpacking  [###########-------------------------]   30%
Unpacking  [###########-------------------------]   31%
Unpacking  [###########-------------------------]   32%
Unpacking  [############------------------------]   33%
Unpacking  [############------------------------]   34%
Unpacking  [############------------------------]   35%
Unpacking  [############------------------------]   36%
Unpacking  [#############-----------------------]   36%
Unpacking  [#############-----------------------]   37%
Unpacking  [#############-----------------------]   38%
Unpacking  [##############----------------------]   39%
Unpacking  [##############----------------------]   40%
Unpacking  [##############----------------------]   41%
Unpacking  [###############---------------------]   41%
Unpacking  [###############---------------------]   42%
Unpacking  [###############---------------------]   43%
Unpacking  [###############---------------------]   44%
Unpacking  [################--------------------]   44%
Unpacking  [################--------------------]   45%
Unpacking  [################--------------------]   46%
Unpacking  [################--------------------]   47%
Unpacking  [#################-------------------]   47%
Unpacking  [#################-------------------]   48%
Unpacking  [#################-------------------]   49%
Unpacking  [##################------------------]   50%
Unpacking  [##################------------------]   51%
Unpacking  [##################------------------]   52%
Unpacking  [###################-----------------]   52%
Unpacking  [###################-----------------]   53%
Unpacking  [###################-----------------]   54%
Unpacking  [###################-----------------]   55%
Unpacking  [####################----------------]   55%
Unpacking  [####################----------------]   56%
Unpacking  [####################----------------]   57%
Unpacking  [####################----------------]   58%
Unpacking  [#####################---------------]   58%
Unpacking  [#####################---------------]   59%
Unpacking  [#####################---------------]   60%
Unpacking  [######################--------------]   61%
Unpacking  [######################--------------]   62%
Unpacking  [######################--------------]   63%
Unpacking  [#######################-------------]   63%
Unpacking  [#######################-------------]   64%
Unpacking  [#######################-------------]   65%
Unpacking  [#######################-------------]   66%
Unpacking  [########################------------]   66%
Unpacking  [########################------------]   67%
Unpacking  [########################------------]   68%
Unpacking  [########################------------]   69%
Unpacking  [#########################-----------]   69%
Unpacking  [#########################-----------]   70%
Unpacking  [#########################-----------]   71%
Unpacking  [#########################-----------]   72%
Unpacking  [##########################----------]   72%
Unpacking  [##########################----------]   73%
Unpacking  [##########################----------]   74%
Unpacking  [###########################---------]   75%
Unpacking  [###########################---------]   76%
Unpacking  [###########################---------]   77%
Unpacking  [############################--------]   78%
Unpacking  [############################--------]   79%
Unpacking  [############################--------]   80%
Unpacking  [#############################-------]   80%
Unpacking  [#############################-------]   81%
Unpacking  [#############################-------]   82%
Unpacking  [#############################-------]   83%
Unpacking  [##############################------]   83%
Unpacking  [##############################------]   84%
Unpacking  [##############################------]   85%
Unpacking  [###############################-----]   86%
Unpacking  [###############################-----]   87%
Unpacking  [###############################-----]   88%
Unpacking  [################################----]   89%
Unpacking  [################################----]   90%
Unpacking  [################################----]   91%
Unpacking  [#################################---]   91%
Unpacking  [#################################---]   92%
Unpacking  [#################################---]   93%
Unpacking  [#################################---]   94%
Unpacking  [##################################--]   94%
Unpacking  [##################################--]   95%
Unpacking  [##################################--]   96%
Unpacking  [###################################-]   97%
Unpacking  [###################################-]   98%
Unpacking  [###################################-]   99%
Unpacking  [####################################]  100%
Library Manager: MySensors@2.3.2 has been installed!
Found 31 compatible libraries
Scanning dependencies...
Dependency Graph
|-- MySensors @ 2.3.2
|   |-- Wire @ 1.0
|   |-- SPI @ 1.0
|   |-- EEPROM
Building in release mode
Compiling .pio/build/bluepill_f103c8/FrameworkArduinoVariant/board.cpp.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduinoVariant/wirish/boards.cpp.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduinoVariant/wirish/boards_setup.cpp.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduinoVariant/wirish/start.S.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduinoVariant/wirish/start_c.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduinoVariant/wirish/syscalls.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/HardwareSerial.cpp.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/HardwareTimer.cpp.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/IPAddress.cpp.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/Print.cpp.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/Stream.cpp.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/WString.cpp.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/avr/dtostrf.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/cxxabi-compat.cpp.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/ext_interrupts.cpp.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/hooks.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/itoa.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/adc.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/adc_f1.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/bkp_f1.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/dac.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/dma.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/dma_f1.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/exc.S.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/exti.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/exti_f1.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/flash.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/fsmc_f1.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/gpio.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/gpio_f1.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/i2c.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/i2c_f1.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/iwdg.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/nvic.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/pwr.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/rcc.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/rcc_f1.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/spi.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/spi_f1.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/stm32f1/performance/isrs.S.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/stm32f1/performance/vector_table.S.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/systick.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/timer.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/timer_f1.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/usart.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/usart_f1.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/usart_private.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/usb/stm32f1/usb.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/usb/stm32f1/usb_cdcacm.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/usb/stm32f1/usb_reg_map.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/usb/usb_lib/usb_core.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/usb/usb_lib/usb_init.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/usb/usb_lib/usb_mem.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/usb/usb_lib/usb_regs.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/libmaple/util.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/main.cpp.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/new.cpp.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/pwm.cpp.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/sdio.cpp.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/stm32f1/util_hooks.c.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/stm32f1/wiring_pulse_f1.cpp.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/stm32f1/wirish_debug.cpp.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/stm32f1/wirish_digital_f1.cpp.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/tone.cpp.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/usb_serial.cpp.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/wirish_analog.cpp.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/wirish_digital.cpp.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/wirish_math.cpp.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/wirish_shift.cpp.o
Compiling .pio/build/bluepill_f103c8/FrameworkArduino/wirish_time.cpp.o
Compiling .pio/build/bluepill_f103c8/src/main.cpp.o
Compiling .pio/build/bluepill_f103c8/lib9ba/Wire/SoftWire.cpp.o
Compiling .pio/build/bluepill_f103c8/lib9ba/Wire/Wire.cpp.o
Compiling .pio/build/bluepill_f103c8/lib9ba/Wire/utility/WireBase.cpp.o
Compiling .pio/build/bluepill_f103c8/liba01/SPI/SPI.cpp.o
Compiling .pio/build/bluepill_f103c8/lib781/EEPROM/EEPROM.cpp.o
Compiling .pio/build/bluepill_f103c8/lib781/EEPROM/flash_stm32.c.o
Compiling .pio/build/bluepill_f103c8/libad4/MySensors/MyASM.S.o
Archiving .pio/build/bluepill_f103c8/libad4/libMySensors.a
Indexing .pio/build/bluepill_f103c8/libad4/libMySensors.a
Archiving .pio/build/bluepill_f103c8/lib9ba/libWire.a
Indexing .pio/build/bluepill_f103c8/lib9ba/libWire.a
Archiving .pio/build/bluepill_f103c8/lib781/libEEPROM.a
Indexing .pio/build/bluepill_f103c8/lib781/libEEPROM.a
Archiving .pio/build/bluepill_f103c8/liba01/libSPI.a
Indexing .pio/build/bluepill_f103c8/liba01/libSPI.a
Linking .pio/build/bluepill_f103c8/firmware.elf
.pio/build/bluepill_f103c8/src/main.cpp.o: In function `premain()':
main.cpp:(.text.startup._Z7premainv+0x0): multiple definition of `premain()'
.pio/build/bluepill_f103c8/FrameworkArduino/main.cpp.o:main.cpp:(.text.startup._Z7premainv+0x0): first defined here
.pio/build/bluepill_f103c8/src/main.cpp.o: In function `main':
main.cpp:(.text.startup.main+0x0): multiple definition of `main'
.pio/build/bluepill_f103c8/FrameworkArduino/main.cpp.o:main.cpp:(.text.startup.main+0x0): first defined here
collect2: error: ld returned 1 exit status
*** [.pio/build/bluepill_f103c8/firmware.elf] Error 1
======================================================= [FAILED] Took 4.22 seconds =======================================================

 *  The terminal process "platformio 'run', '--environment', 'bluepill_f103c8'" terminated with exit code: 1. 
 *  Terminal will be reused by tasks, press any key to close it. 

This one says that some how there is a main() function in your src/main.cpp file, but it’s not visible from the code above. That could mean it’s hiding in MySensors.h. Where is the source code for that file?