我有兴趣把我的C ++程序编译成可以在ARM MCU上运行的程序。 要做到这一点,我需要安装gcc-arm-none-eabi 。 我目前在Windows 7的机器上,所以我已经安装了GCC / make / g ++ / etc。 通过MinGW。
从我所做的研究看来,MinGW似乎不支持这个工具链,这使我相信基于Windows的ARM开发是不可能的。 所以我问:如何使用MinGW在本地安装gcc-arm-none-eabi工具链?
错误设置去交叉编译
如何在Windows上交叉编译二进制代码以在Unix(Solaris / HPUX / Linux)上运行?
编译Crypto ++ for armhf进行交叉编译
从Linux交叉编译OS X
无法用64位g ++编译32位
你可以用MinGW来做这个; 你只需要换出你选择的C ++工具链。 您仍然可以从MSYS控制台调用它,并且所有其他工具仍然可以工作。 MinGW或MSYS没有任何内容使得这个“不被支持”。
我个人从launchpad.net安装GCC 4.9 gcc-arm-none-eabi ,在MSYS中安装工具链的目录,然后导出我需要的路径:
mount 'C:PROGRA~2GNUTOO~14947E~1.920' /foo mount 'C:PROGRA~2GNUTOO~14947E~1.920ARM-NO~1' /foo_local
要发现路径的短名称,请在Windows命令提示符处书写dir /X 在我的机器上,上面的路径分别相当于以下内容:
C:Program Files (x86)GNU Tools ARM Embedded4.9 2014q4
C:Program Files (x86)GNU Tools ARM Embedded4.9 2014q4arm-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。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。