如何为MinGW用户安装gcc-arm-none-eabi?

我有兴趣把我的C ++程序编译成可以在ARM MCU上运行的程序。 要做到这一点,我需要安装gcc-arm-none-eabi 。 我目前在Windows 7的机器上,所以我已经安装了GCC / make / g ++ / etc。 通过MinGW。

从我所做的研究看来,MinGW似乎不支持这个工具链,这使我相信基于Windows的ARM开发是不可能的。 所以我问:如何使用MinGW在本地安装gcc-arm-none-eabi工具链?

你可以用MinGW来做这个; 你只需要换出你选择的C ++工具链。 您仍然可以从MSYS控制台调用它,并且所有其他工具仍然可以工作。 MinGW或MSYS没有任何内容使得这个“不被支持”。

我个人从launchpad.net安装GCC 4.9 gcc-arm-none-eabi ,在MSYS中安装工具链的目录,然后导出我需要的路径:

  mount 'C:\PROGRA~2\GNUTOO~1\4947E~1.920' /foo mount 'C:\PROGRA~2\GNUTOO~1\4947E~1.920\ARM-NO~1' /foo_local 

要发现路径的短名称,请在Windows命令提示符处书写dir /X 在我的机器上,上面的路径分别相当于以下内容:

  • C:\Program Files (x86)\GNU Tools ARM Embedded\4.9 2014q4
  • C:\Program Files (x86)\GNU Tools ARM Embedded\4.9 2014q4\arm-none-eabi

安装只需要做一次; export指令可能被添加到/etc/profile

  export CPPFLAGS="-I/foo_local/include" export CFLAGS="-I/foo_local/include" export CXXFLAGS="-I/foo_local/include" export LDFLAGS="-L/foo_local/lib -mthreads" export PATH=".:/foo_local/bin:/foo/bin:/bin:/opt/bin" 

然后运行g++

当然,您也可以跳过所有的出口业务,直接调用您选择的GCC:

 /foo/bin/g++ 

ELLCC是另一种选择。 你不一定需要安装mingw或者mingw-64来运行它,因为它是静态链接的。 这篇文章谈到了使用它来定位Windows,但同样的二进制也可以用来定位ARM和其他处理器 。 它基于clang / LLVM,但不是gcc。