Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Troubleshooting
  3. multiple definition of `premain()' - PlatformIO

multiple definition of `premain()' - PlatformIO

Scheduled Pinned Locked Moved Troubleshooting
2 Posts 2 Posters 31 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Tom 0T Offline
    Tom 0T Offline
    Tom 0
    wrote on last edited by
    #1

    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. 
    
    1 Reply Last reply
    0
    • E Offline
      E Offline
      ejlane
      wrote on last edited by
      #2

      Well, search seems to be broken again on the site. Hopefully a dev will see this come across their screen and know how to fix it.

      I searched the site for "multiple definition" and 'premain' but neither one got ANY hits, even this topic itself!

      So if you tried to search the site to see if anyone else had had this problem before, it wouldn't have much chance of success. Anyway, all that is to say that we've run into this before. I'll link below here the thread where I managed to get around it. I'm not sure if there were other threads, but this one should give you some info on how to fix it for yourself. I could find this by going into the history of posts I had made, since search was failing me.... :)

      https://forum.mysensors.org/topic/10193/stm32f103c8-problem-at-compilation

      1 Reply Last reply
      0
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      11

      Online

      11.7k

      Users

      11.2k

      Topics

      113.1k

      Posts


      Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
      • Login

      • Don't have an account? Register

      • Login or register to search.
      • First post
        Last post
      0
      • MySensors
      • OpenHardware.io
      • Categories
      • Recent
      • Tags
      • Popular