"Cannot execute binary file" 当 运行 使用 Eclipse 在 Ubuntu 上为 Windows 平台编译 c++ 程序时

"Cannot execute binary file" when running compiled c++ programs with Eclipse on Ubuntu for Windows platform

我想从 Windows 平台上的 Visual Studio 转移到 Ubuntu 平台上的 Eclipse 进行 c++ 开发,因为我几乎所有的程序都是在 Java 上开发的,使用Eclipse,我只是使用 Windows 虚拟机来为 Win OS 开发 C++ 程序。因此,如果我很高兴能够完全不使用 Windows 虚拟机。但是,我已经成功地配置了 MinGW 和 Eclipse,足以编译程序,但不能执行它们。

到目前为止我完成的步骤:

我已经安装了 mingw32 包和依赖项:

$ sudo apt-get install mingw32

我已经为 C/C++ 开发安装了 Eclipse Mars(手动安装,以将此安装与我拥有的其他 Eclipse 隔离开来)并以这种方式创建了一个新项目:

- New C++ project.
- [...]
- Cross-prefix: i586-mingw32msvc-
- Cross path: /usr/bin/

使用此配置,我能够正确构建一个 .exe,我可以在 Windows 上成功执行它,但是当尝试调试它或在 Eclipse 下执行它时,我收到此错误:"cannot execute binary file".

Googleing 我看到一些帖子建议使用 wine 来执行 .exe,但我认为 mingw32 可以执行它。我错了吗?这是不可能的还是只是做错了什么?

Mingw32 是一个 windows 编译器,会将源代码编译为 Windows 可执行文件。此外,编译器无法执行文件(如问题中所述),它只是将源代码编译为可执行形式,在这种情况下windows 可执行文件 (*.exe)。所以是的,为了 运行 Ubuntu 中的 .exe,您需要类似 Wine 的东西来模拟 Windows 环境

mingw 是一组用于构建本机 Windows 可执行文件的 GNU 工具。
它不执行任何操作。
如果你真的想为 Windows 交叉编译,你需要 Windows 或一个模拟器来执行。

要为 Ubuntu 构建,您可以只使用本机编译器。

sudo apt-get install gcc