AVR-GCC 11.1.0 for Windows 32 and 64 bit

This is where I’ll be uploading builds of AVR-GCC for Windows 32 and 64 bit, which will also include Binutils, AVR-LibC, AVRDUDE, Make and GDB. I’ll be trying to keep the builds up to date with the latest tool releases when I can.

The binaries are built from source on a Debian 10 virtual machine with MinGW (GCC 9.1.0 and older were built on an Arch Linux VM), apart from AVRDUDE where the pre-built binaries are obtained from the official download area. Both 32 bit and 64 bit Windows binaries are provided. There’s probably no benefit from using the 64 bit stuff, but all the cool kids are doing it so why not.
A bash script for building AVR-GCC, AVR-Binutils, AVR-LibC and AVR-GDB from source is also provided below, making it super easy to build these tools for yourself.

Included tools

Tool Version
GCC 11.1.0
Binutils 2.36.1
AVR-LibC SVN with extras
GDB 10.2
AVRDUDE 6.3 (Not included in Linux release)
Make 4.2.1 (Not included in Linux release)


avr-gcc-11.1.0-x64-windows.zip (100.0 MB)
AVG-GCC 11.1.0 Windows x64 (64 bit)
Downloaded 826 times
MD5: 3043B0659163DD116D02FE3470D404D5

avr-gcc-11.1.0-x86-windows.zip (98.3 MB)
AVG-GCC 11.1.0 Windows x86 (32 bit)
Downloaded 174 times
MD5: B6459D9048B0870A96544330E54B66AE

avr-gcc-11.1.0-x64-linux.tar.bz2 (75.9 MB)
AVG-GCC 11.1.0 Linux x64
Downloaded 83 times
MD5: 53BBFC8CA900F2583A1DC45F13F589BF

Known Issues

Using avr-ar will return an error about libdep.dll.a not being designed to run on Windows. To fix this error delete avr-gcc-11.1.0-x64-windows/lib/bfd-plugins/libdep.dll.a

Upgrading the Arduino IDE

Upgrading the Arduino IDE is pretty easy, though there could be some incompatibilities with certain libraries. Only tested with Arduino 1.8.13.

  1. Download and extract one of the downloads above
  2. Navigate to your Arduino IDE folder
  3. Go to [hardware/tools]
  4. Move the [avr] folder somewhere else, like to your desktop (renaming the folder won’t work, Arduino has some auto-detect thing which sometimes gets confused)
  5. Move the extracted folder from earlier to the [tools] folder and rename it to [avr]
  6. Copy [bin/avrdude.exe] and [builtin_tools_versions.txt] files and [etc] folder from the old [avr] folder to the new one
  7. Done! Open up the Arduino IDE, load up the Blink example, upload it to your Arduino and make sure the LED is blinking!

Build Script

This build script will install the required packages, create directories and build the tools from source. This should work on Debian 8+, Ubuntu 16.04+, CentOS 7 and maybe Arch.

Building takes about 1 hour 45 minutes on an Debian Linux virtual machine with 4 cores i5 2500K @ 4GHz and 2GB RAM.


4 pings

Skip to comment form

    • Karanbir Soin on December 28, 2020 at 7:15 am
    • Reply

    The file averdude.conf in the etc folder needs to be replaced with the avrdude.conf in your build. . After this I can upluad the sketch using programmer USBASP

    • Karanbir Soin on January 6, 2021 at 2:03 pm
    • Reply

    I upgraded the Arduino IDE as listed on this page.
    The code does not upload. This is the error

    Arduino: 1.8.13 (Windows 10), Board: "Optiboot on 32-pin cpus, 16MHz, ATmega328p"
    [ADMIN EDIT: shortened massive compile log]
    avrdude: Version 6.3, compiled on Feb 17 2016 at 09:25:53
             Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
             Copyright (c) 2007-2014 Joerg Wunsch
             System wide configuration file is "D:\Arduino_1.8.13\arduino-1.8.13\hardware\tools\avr/etc/avrdude.conf"
    avrdude: error at D:\Arduino_1.8.13\arduino-1.8.13\hardware\tools\avr/etc/avrdude.conf:1133: programmer type jtagice3_updi not found
    avrdude: error reading system wide configuration file "D:\Arduino_1.8.13\arduino-1.8.13\hardware\tools\avr/etc/avrdude.conf"
    avrdude: error reading system wide configuration file "D:\Arduino_1.8.13\arduino-1.8.13\hardware\tools\avr/etc/avrdude.conf"
    1. Hi Karanbir, I’ve updated the Arduino instructions. bin/avrdude.exe from the old avr folder needs to be copied to the new one.

    • David Watson on January 21, 2021 at 11:45 pm
    • Reply

    I have a question rather than a comment. I’ve just done a new install of Linux Mint 20, installed Arduino 1.8.13 via the software manager which came with avr-gcc 5.4 (2015). Downloaded your binaries and swapped out the necessary files. I have a test unit that record the compiler version and then outputs that info when reset thereby confirming it was compiled with 10.1.0. From terminal however, I enter avr-gcc –version and I still show 5.4. I’m curious to run Arduino-cli and don’t want 5.4 hijacking my build. Any idea how to completely eradicate 5.4 from the system?

    1. I would think avr-gcc was installed as its own package, so searching for the avr-gcc package in the software manager (might be called gcc-avr) and choosing uninstall might do the trick.

    • Kharitonov Dmitry on May 29, 2021 at 4:38 pm
    • Reply

    lib\bfd-plugins\libdep.dll.a is failure

    test case:

    type test.c

    int main(void) {
    return 0;

    type compile.bat
    del test.a

    set gccpath=c:/avr-gcc-11.1.0-x64-windows/bin
    set PATH=%gccpath%;%PATH%

    avr-gcc -DF_CPU=16000000 -mmcu=atmega1284p -I/usr/include/avr -I. -Wall -Werror -c -o test.o test.c

    avr-ar rcs test.a test.o
    avr-ar rcs test.a test.o


    Windows 7 SP1 x64

    1. Hey, this looks to be a binutils issue when using avr-ar, more info here – https://github.com/msys2/MINGW-packages/issues/7890
      Deleting avr-gcc-11.1.0-x64-windows/lib/bfd-plugins/libdep.dll.a should fix the problem.

Leave a Reply

Your email address will not be published.

Are you human? *