如何使用arm-none-eabi-gcc在Windows Eclipse中生成可运行的ELF文件
核心结论
arm-none-eabi-gcc 是专为32位ARM嵌入式场景设计的交叉编译器,仅支持生成ARM架构的二进制指令,没有任何编译参数可以让它输出x86-64架构的可执行文件。另外你提到的ELF格式也不是Windows原生支持的可执行格式,Windows原生运行的是PE格式程序。
适配免安装迁移需求的可选方案
你不想全局安装Cygwin、MinGW的需求可以通过以下方案实现,不会影响现有ARM项目的编译逻辑:
- 下载便携版MinGW gcc整套工具链,和现有
arm-none-eabi-gcc一起放在项目目录下,给不同项目分别配置对应的工具链路径即可,两个工具链互不干扰,同样能实现整个工作空间免安装迁移。 - 如果只是需要在Windows上验证代码逻辑,不需要生成原生x86可执行文件,可以把免安装单文件版QEMU for ARM放到项目目录,编译生成ARM架构的
helloworld.out后,执行qemu-arm ./helloworld.out就能直接在Windows x86-64环境下运行,完全不需要改动现有编译配置。 - 如果需要让同一份代码同时输出ARM设备可用的二进制和Windows原生可执行文件,可以在Makefile中加架构判断分支,分别调用项目目录下的
arm-none-eabi-gcc和MinGW gcc执行编译,无需全局安装任何工具。
内容的提问来源于stack exchange,提问作者ams
相关产品推荐
相关产品推荐

