![](/img/trans.png)
[英]Typedef an externel structure in file using cross-compiler (arm-none-eabi-gcc)
[英]How to generate a elf file to run in eclipse on windows using arm-non-eabi-gcc as cross compiler?
我正在使用 arm-non-eabi-gcc 作为交叉编译器。
我在 eclipse 创建了一个简单的 hello world 程序。
我能够使用 arm-non-eabi-gcc 编译程序,并且正在生成 helloworld.out[arm/le] 文件,但我无法运行它,因为它只能在 arm 上运行,而不是在 windows x86-64 上运行。
我知道我可以使用 cygwin 或 mingw 来编译代码,我将能够轻松地在 windows 上运行该程序,但是,我只想将 arm-non-eabi-gcc 用作交叉编译器。
我想知道如何使用 arm-non-eabi-gcc 作为交叉编译器,或者我需要在我的 make 文件或 eclise 工具链设置中包含哪些标志,并创建一个可以在 windows x86-64 上轻松运行的 elf 文件.
注意:生成的二进制文件将始终在 windows 上运行,而不是任何 arm 系统,只是我的项目工作区有其他使用 arm-none-eabi-gcc 的项目,所以我想使用相同的,我不想要 cygwin 或 mingw。
我的完整 workspacr 和其他项目很容易移动,因为我将 arm-non-eabi-gcc exe 保存在项目目录中。 使用 cygwin 或 mingw 可以轻松编译和运行二进制文件,但我们需要在更改系统时安装它们。
任何指导或帮助将不胜感激。
谢谢。
交叉编译器的全部意义在于生成不会在当前系统上本地运行的可执行文件。 要么使用模拟器,要么不使用交叉编译器。
与 clang 不同,GCC 没有类似-target x86-64-windows
的选项。 您的arm-none-eabi-gcc
只能生成 ARM 个二进制文件。
所以我想问这个问题并没有什么坏处,但这里的答案是一个明确而明显的“不” ,你设置了所有约束,比如不使用模拟器,并且使用只能生成 ARM 个二进制文件的编译器。
如果你想要可执行文件,你可以在 x86-64 Windows 上运行,在你的 IDE 之外构建它们(例如,在命令行上使用简单的 Makefile),或者配置该项目与你的 IDE 中的交叉编译项目不同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.