Project to allow GCC compilation of code using mbed SDK libraries.
Makefile C++ C Shell Batchfile
Clone or download
adamgreen Allow USER_LIBS to not recurse for include path
If you now prefix a library folder in the USER_LIBS list with a '!'
character then just the root of the library folder will be added to
include path instead of every subfolder within the library project.

I also added a note to the MBED_CONFIG_H documentation to indicate the
risks of its use.
Latest commit 7d79ef3 Jul 25, 2017


Current Version

GCC Version: GCC ARM Embedded 6-2017-q1-update
mbed SDK Version: Revision 142

Previous Versions

GCC ARM Embedded 5.0-2015-q4-major with mbed SDK revision 119
GCC ARM Embedded 5.0-2015-q4-major with mbed SDK revision 113
GCC ARM Embedded 4.9-2015-q3-update with mbed SDK revision 108
GCC ARM Embedded 4.9-2015-q1-update with mbed SDK revision 100
GCC ARM Embedded 4.9-2014-q4-major with mbed SDK revision 94
GCC ARM Embedded 4.8-2014-q1-update with mbed SDK revision 92
GCC ARM Embedded 4.8-2014-q1-update with mbed SDK revision 91
GCC ARM Embedded 4.8-2014-q1-update with mbed SDK revision 88
GCC ARM Embedded 4.8-2014-q1-update with mbed SDK revision 85
GCC ARM Embedded 4.8-2014-q1-update with mbed SDK revision 84

Quick Start

These are the quick steps to get gcc4mbed installed on your computer:

  • Download the gcc4mbed compressed archive from
  • Decompress and extract the contents of this archive to the location where you want gcc4mbed and the GNU Tools for ARM Embedded Processors to be installed.
  • Run the install script appropriate for your platform:
    • Windows: win_install.cmd
    • macOS: mac_install
    • Linux: linux_install
  • You can then run the BuildShell script which will be created during the install to properly configure the PATH environment variable to run the GNU tools just installed within the gcc4mbed directory. You may want to edit this script to further customize your development environment.

Important Notes:

  • Builds can fail on Windows with weird errors when using a version of make other than the version of GNU make found in external/win32. You may need to make sure that Cygwin/MingW versions of the shell or make don't interfere as the gcc4mbed scripts/makefiles are built to work on stock Windows and not require such Posix compatibility environments.
  • macOS Mountain Lion and newer will fail to execute mac_install by simply clicking on it. Instead right click on mac_install in the Finder, select the Open option, and then click the Open button in the resulting security warning dialog.
  • Files will fail to install to a FAT based file system. Extract to a more appropriate file system (ie. NTFS on Windows) first and then copy to a FAT drive after installation.
  • If the installation should fail, please refer to win_install.log, linux_install.log, or mac_install.log. It will contain the details of the installation process and any errors that were encountered.

Release Tests

When releasing GCC4MBED I test installing, building, and deploying from these operating systems:

  • macOS Sierra 10.12
  • Windows 10
  • Ubuntu 16.04

I build, deploy, and run the samples on these target devices:

  • K64F
  • KL25Z
  • LPC1768
  • NRF51_DK

Please feel free to open GitHub issues to let me and the community know if you hit any issues for a target that should be supported with the GCC_ARM toolchain so that we can investigate.

More Information

Installation: For more information about how to install, uninstall, and use the GCC4MBED project.

New Project: How to start your own new project in GCC4MBED.

Makefile Configuration: Information about makefile options to customize your project's binary.

Analyzing Firmware Size: How to measure and reduce FLASH/RAM memory usage.

Adding Devices: Notes on how to add new device support to GCC4MBED.


The author wants to thank Arthur Wolf for the posting he made back in May 2011 which kicked off this whole gcc4mbed project and for all of the testing and feedback he has given since.

Thanks to Felyza Wishbringer for writing the first Windows install script which provided the inspiration for the Windows, Mac, and Linux scripts that are now included in the gcc4mbed project.

Thanks for all of the others who have provided valuable feedback since this project was first released. Much of that feedback can be found in this mbed forum thread

Have fun!!