如何为 MinGW 用户安装 gcc-arm-none-eabi?
Posted
技术标签:
【中文标题】如何为 MinGW 用户安装 gcc-arm-none-eabi?【英文标题】:How to install gcc-arm-none-eabi for MinGW users? 【发布时间】:2015-05-19 19:23:39 【问题描述】:我有兴趣将我的 C++ 程序交叉编译成可以在 ARM MCU 上运行的东西。为此,我需要安装gcc-arm-none-eabi
。我目前在 Windows 7 机器上,所以我安装了 GCC/make/g++/etc。通过 MinGW。
从我所做的研究来看,MinGW 似乎不支持这个工具链,这让我相信基于 Windows 的 ARM 开发是不可能的。所以我问:如何使用MinGW在本地安装gcc-arm-none-eabi
工具链?
【问题讨论】:
【参考方案1】:您可以为此使用 MinGW;您只需将 C++ 工具链换成您选择的工具链。您仍然可以从 MSYS 控制台调用它,并且您的所有其他工具仍然可以工作。 MinGW 或 MSYS 没有任何固有的特性使其“不受支持”。
我个人安装GCC 4.9 gcc-arm-none-eabi from launchpad.net,在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++
【讨论】:
【参考方案2】:如果您使用 MSYS2,MinGW 合规性,您将能够通过 pacman
安装 arm-none-eabi-gcc
你可以从这里下载:https://www.msys2.org
按照说明正确设置环境。
然后在下面使用这个命令
pacman -S mingw-w64-x86_64-arm-none-eabi-gcc mingw-w64-x86_64-libwinpthread-git
现在您还需要将其添加到 PATH 中,
echo "export PATH=$PATH:/mingw64/bin" >> ~/.bashrc
source ~/.bashrc
然后,您现在可以使用 MSYS2 shell 调用 arm-none-eabi-gcc
。
这个包的详细信息见这里https://packages.msys2.org/group/mingw-w64-x86_64-arm-none-eabi-toolchain
【讨论】:
【参考方案3】:ELLCC 是另一种选择。您不一定需要安装 mingw 或 mingw-64 来运行它,因为它是静态链接的。 This post 谈到使用它来定位 Windows,但同样的二进制文件也可以用于定位 ARM and other processors。它基于 clang/LLVM,而不是 gcc。
【讨论】:
网站/链接似乎死了以上是关于如何为 MinGW 用户安装 gcc-arm-none-eabi?的主要内容,如果未能解决你的问题,请参考以下文章