# Compilation Error: Undefined reference to main

**URL:** <https://forum.arduino.cc/t/compilation-error-undefined-reference-to-main/1349137>\
**Category:** Programming\
**Created:** [January 31, 2025, 2:08pm UTC](https://forum.arduino.cc/t/compilation-error-undefined-reference-to-main/1349137 "2025-01-31T14:08:46Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![meeran](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/meeran/32/1192697_2.png) [@meeran](https://forum.arduino.cc/u/meeran)\
**Post date:** [January 31, 2025, 2:08pm UTC](https://forum.arduino.cc/t/compilation-error-undefined-reference-to-main/1349137/1 "2025-01-31T14:08:46Z")

</div>

```arduino
c:/users/mdmee/appdata/local/arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/../lib/gcc/avr/7.3.0/../../../../avr/lib/avr5/crtatmega328p.o:(.init9+0x0): undefined reference to `main'
collect2.exe: error: ld returned 1 exit status

exit status 1

Compilation error: exit status 1

```

This is my code, literally the default blink example:

```arduino
#include <Arduino_BuiltIn.h>

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
  delay(1000); // wait for a second
  digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
  delay(1000); // wait for a second
}

```

---

<div class="post-metadata">

**Author:** ![UKHeliBob](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/ukhelibob/32/215663_2.png) [@UKHeliBob](https://forum.arduino.cc/u/UKHeliBob)\
**Post date:** [January 31, 2025, 2:17pm UTC](https://forum.arduino.cc/t/compilation-error-undefined-reference-to-main/1349137/2 "2025-01-31T14:17:43Z")

</div>

Welcome to the forum

Which Arduino board are you using and which board have you got selected in the IDE ?

---

<div class="post-metadata">

**Author:** ![StefanL38](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/stefanl38/32/713548_2.png) [@StefanL38](https://forum.arduino.cc/u/StefanL38)\
**Post date:** [January 31, 2025, 3:21pm UTC](https://forum.arduino.cc/t/compilation-error-undefined-reference-to-main/1349137/3 "2025-01-31T15:21:30Z")

</div>

Hi @meeran

welcome to the arduino-Forum.  
Well done to post the error-message and the code as a code-section.

You should provide much more detailed information about the compile-process.  
Read this 3 minutes tutorial to learn how to adjust the Arduino-IDE to automatically create alls the detail-information

> [@If you get a compiler-error or an upload-error provide all details for analysing the error](https://forum.arduino.cc/t/if-you-get-a-compiler-error-or-an-upload-error-provide-all-details-for-analysing-the-error/971255/1):
>
> Hi newcomer, the Arduino-Forum community can be of great help. If the community is able to support you in a way that helps solving your problems depends on detailed information that you should provide. trying to be quick by posting a too short posting is just slowing down finding the solution. Because all that happends is that you are asked for the detailed information and have to provide it anyway. Only difference the answer and the solution comes later The most important thing is to post …

---

<div class="post-metadata">

**Author:** ![meeran](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/meeran/32/1192697_2.png) [@meeran](https://forum.arduino.cc/u/meeran)\
**Post date:** [January 31, 2025, 3:38pm UTC](https://forum.arduino.cc/t/compilation-error-undefined-reference-to-main/1349137/4 "2025-01-31T15:38:23Z")

</div>

Using Arduino UNO and thats the one selected in the IDE

---

<div class="post-metadata">

**Author:** ![UKHeliBob](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/ukhelibob/32/215663_2.png) [@UKHeliBob](https://forum.arduino.cc/u/UKHeliBob)\
**Post date:** [January 31, 2025, 3:40pm UTC](https://forum.arduino.cc/t/compilation-error-undefined-reference-to-main/1349137/5 "2025-01-31T15:40:19Z")

</div>

> [@meeran](#):
>
> , literally the default blink example:

That is not the default Blink example

Comment out that first #include

---

<div class="post-metadata">

**Author:** ![StefanL38](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/stefanl38/32/713548_2.png) [@StefanL38](https://forum.arduino.cc/u/StefanL38)\
**Post date:** [January 31, 2025, 3:45pm UTC](https://forum.arduino.cc/t/compilation-error-undefined-reference-to-main/1349137/6 "2025-01-31T15:45:14Z")

</div>

> [@meeran](#):
>
> Using Arduino UNO and thats the one selected in the IDE

If I select Arduino Uno in my IDE and compile your code as posted in post #1  
it **does** compile.

So there must be something else wrong.

You can now waste hours, days and weeks by posting too short new postings or take a single time 5 minutes to read and then follow this tutorial.

This will

## AUTOMATICALLY

create all the details that you do not know yet to analyse to find the error

> [@If you get a compiler-error or an upload-error provide all details for analysing the error](https://forum.arduino.cc/t/if-you-get-a-compiler-error-or-an-upload-error-provide-all-details-for-analysing-the-error/971255/1):
>
> Hi newcomer, the Arduino-Forum community can be of great help. If the community is able to support you in a way that helps solving your problems depends on detailed information that you should provide. trying to be quick by posting a too short posting is just slowing down finding the solution. Because all that happends is that you are asked for the detailed information and have to provide it anyway. Only difference the answer and the solution comes later The most important thing is to post …

---

<div class="post-metadata">

**Author:** ![sonofcy](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/sonofcy/32/1283617_2.png) [@sonofcy](https://forum.arduino.cc/u/sonofcy)\
**Post date:** [January 31, 2025, 3:53pm UTC](https://forum.arduino.cc/t/compilation-error-undefined-reference-to-main/1349137/7 "2025-01-31T15:53:15Z")

</div>

Your compile error is in the AVR boards code. Either your install went bad, or a HDD soft fail. In either case just do a re-install of the IDE. If this persists, you need to delete the entire Arduin15 folder and any other hidden Arduino folders (at least one)

---

<div class="post-metadata">

**Author:** ![meeran](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/meeran/32/1192697_2.png) [@meeran](https://forum.arduino.cc/u/meeran)\
**Post date:** [January 31, 2025, 4:10pm UTC](https://forum.arduino.cc/t/compilation-error-undefined-reference-to-main/1349137/8 "2025-01-31T16:10:55Z")

</div>

Already tried

---

<div class="post-metadata">

**Author:** ![meeran](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/meeran/32/1192697_2.png) [@meeran](https://forum.arduino.cc/u/meeran)\
**Post date:** [January 31, 2025, 4:11pm UTC](https://forum.arduino.cc/t/compilation-error-undefined-reference-to-main/1349137/9 "2025-01-31T16:11:29Z")

</div>

alright ill do this

---

<div class="post-metadata">

**Author:** ![meeran](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/meeran/32/1192697_2.png) [@meeran](https://forum.arduino.cc/u/meeran)\
**Post date:** [January 31, 2025, 4:18pm UTC](https://forum.arduino.cc/t/compilation-error-undefined-reference-to-main/1349137/10 "2025-01-31T16:18:06Z")

</div>

These are all the details

```arduino

FQBN: arduino:avr:uno
Using board 'uno' from platform in folder: C:\Users\mdmee\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6
Using core 'arduino' from platform in folder: C:\Users\mdmee\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6

Detecting libraries used...
C:\Users\mdmee\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Users\mdmee\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino -IC:\Users\mdmee\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\variants\standard C:\Users\mdmee\AppData\Local\arduino\sketches\72692CF9A2E9E385C9B7228DC9D46C74\sketch\Blink.ino.cpp -o nul
Generating function prototypes...
C:\Users\mdmee\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Users\mdmee\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino -IC:\Users\mdmee\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\variants\standard C:\Users\mdmee\AppData\Local\arduino\sketches\72692CF9A2E9E385C9B7228DC9D46C74\sketch\Blink.ino.cpp -o C:\Users\mdmee\AppData\Local\Temp\1600574688\sketch_merged.cpp
C:\Users\mdmee\AppData\Local\Arduino15\packages\builtin\tools\ctags\5.8-arduino11/ctags -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives C:\Users\mdmee\AppData\Local\Temp\1600574688\sketch_merged.cpp
Compiling sketch...
"C:\\Users\\mdmee\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -Wall -Wextra -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Users\\mdmee\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\mdmee\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\standard" "C:\\Users\\mdmee\\AppData\\Local\\arduino\\sketches\\72692CF9A2E9E385C9B7228DC9D46C74\\sketch\\Blink.ino.cpp" -o "C:\\Users\\mdmee\\AppData\\Local\\arduino\\sketches\\72692CF9A2E9E385C9B7228DC9D46C74\\sketch\\Blink.ino.cpp.o"
Compiling libraries...
Compiling core...
Using precompiled core: C:\Users\mdmee\AppData\Local\arduino\cores\arduino_avr_uno_566c47d9f63672ddb7f5ae3fcfffff35\core.a
Linking everything together...
"C:\\Users\\mdmee\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-gcc" -Wall -Wextra -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p -o "C:\\Users\\mdmee\\AppData\\Local\\arduino\\sketches\\72692CF9A2E9E385C9B7228DC9D46C74/Blink.ino.elf" "C:\\Users\\mdmee\\AppData\\Local\\arduino\\sketches\\72692CF9A2E9E385C9B7228DC9D46C74\\sketch\\Blink.ino.cpp.o" "C:\\Users\\mdmee\\AppData\\Local\\arduino\\sketches\\72692CF9A2E9E385C9B7228DC9D46C74/..\\..\\cores\\arduino_avr_uno_566c47d9f63672ddb7f5ae3fcfffff35\\core.a" "-LC:\\Users\\mdmee\\AppData\\Local\\arduino\\sketches\\72692CF9A2E9E385C9B7228DC9D46C74" -lm
c:/users/mdmee/appdata/local/arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/../lib/gcc/avr/7.3.0/../../../../avr/lib/avr5/crtatmega328p.o:(.init9+0x0): undefined reference to `main'
collect2.exe: error: ld returned 1 exit status

exit status 1

Compilation error: exit status 1

```

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [July 30, 2025, 4:19pm UTC](https://forum.arduino.cc/t/compilation-error-undefined-reference-to-main/1349137/11 "2025-07-30T16:19:01Z")

</div>

Closed on July 30, 2025, 4:19pm UTC

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.
